home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / develop™ Technical Journal / develop Issue 16 code / Number Formatting.sea / Number Formatting / Numbers.p < prev    next >
MacBinary  |  1993-09-15  |  16.0 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert ZX81 Sinclair BASIC (image/sinclairBASIC) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Wed Sep 15 13:00:00 1993, modified Wed Sep 15 13:00:00 1993, creator 'MPS ', type ASCII, 15506 bytes "Numbers.p" , at 0x3d12 534 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 4e 75 6d 62 65 72 | 73 2e 70 00 00 00 00 00 |..Number|s.p.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 3c 92 00 | 00 02 16 a8 bc fa 90 a8 |.....<..|........|
|00000060| bc fa 90 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 a1 07 00 00 |........|........|
|00000080| 50 52 4f 47 52 41 4d 20 | 4e 75 6d 62 65 72 73 3b |PROGRAM |Numbers;|
|00000090| 0d 0d 09 55 53 45 53 0d | 09 09 53 63 72 69 70 74 |...USES.|..Script|
|000000a0| 2c 20 52 65 73 6f 75 72 | 63 65 73 2c 20 4d 65 6d |, Resour|ces, Mem|
|000000b0| 6f 72 79 2c 20 45 72 72 | 6f 72 73 2c 20 47 65 73 |ory, Err|ors, Ges|
|000000c0| 74 61 6c 74 45 71 75 2c | 20 50 61 63 6b 61 67 65 |taltEqu,| Package|
|000000d0| 73 2c 20 53 41 4e 45 2c | 20 55 46 61 69 6c 75 72 |s, SANE,| UFailur|
|000000e0| 65 3b 0d 0d 09 56 41 52 | 0d 09 09 67 44 65 66 61 |e;...VAR|...gDefa|
|000000f0| 75 6c 74 44 65 63 69 6d | 61 6c 53 65 70 61 72 61 |ultDecim|alSepara|
|00000100| 74 6f 72 3a 20 43 68 61 | 72 3b 0d 09 09 67 44 65 |tor: Cha|r;...gDe|
|00000110| 66 61 75 6c 74 54 68 6f | 75 73 61 6e 64 73 53 65 |faultTho|usandsSe|
|00000120| 70 61 72 61 74 6f 72 3a | 20 43 68 61 72 3b 0d 0d |parator:| Char;..|
|00000130| 0d 09 50 52 4f 43 45 44 | 55 52 45 20 49 6e 69 74 |..PROCED|URE Init|
|00000140| 69 61 6c 69 7a 65 44 65 | 66 61 75 6c 74 4e 75 6d |ializeDe|faultNum|
|00000150| 62 65 72 53 65 70 61 72 | 61 74 6f 72 73 3b 0d 0d |berSepar|ators;..|
|00000160| 09 09 56 41 52 0d 09 09 | 09 74 68 65 49 74 6c 30 |..VAR...|.theItl0|
|00000170| 48 61 6e 64 6c 65 3a 20 | 48 61 6e 64 6c 65 3b 0d |Handle: |Handle;.|
|00000180| 0d 09 42 45 47 49 4e 0d | 09 09 74 68 65 49 74 6c |..BEGIN.|..theItl|
|00000190| 30 48 61 6e 64 6c 65 20 | 3a 3d 20 47 65 74 52 65 |0Handle |:= GetRe|
|000001a0| 73 6f 75 72 63 65 28 27 | 69 74 6c 30 27 2c 20 47 |source('|itl0', G|
|000001b0| 65 74 53 63 72 69 70 74 | 28 73 6d 53 79 73 74 65 |etScript|(smSyste|
|000001c0| 6d 53 63 72 69 70 74 2c | 20 73 6d 53 63 72 69 70 |mScript,| smScrip|
|000001d0| 74 4e 75 6d 62 65 72 29 | 29 3b 0d 09 09 46 61 69 |tNumber)|);...Fai|
|000001e0| 6c 4e 49 4c 52 65 73 6f | 75 72 63 65 28 74 68 65 |lNILReso|urce(the|
|000001f0| 49 74 6c 30 48 61 6e 64 | 6c 65 29 3b 0d 09 09 57 |Itl0Hand|le);...W|
|00000200| 49 54 48 20 49 6e 74 6c | 30 48 6e 64 6c 28 74 68 |ITH Intl|0Hndl(th|
|00000210| 65 49 74 6c 30 48 61 6e | 64 6c 65 29 5e 5e 20 44 |eItl0Han|dle)^^ D|
|00000220| 4f 20 42 45 47 49 4e 0d | 09 09 09 09 49 46 20 28 |O BEGIN.|....IF (|
|00000230| 64 65 63 69 6d 61 6c 50 | 74 20 49 4e 20 5b 27 30 |decimalP|t IN ['0|
|00000240| 27 2e 2e 27 39 27 2c 20 | 43 68 61 72 28 30 29 2c |'..'9', |Char(0),|
|00000250| 20 27 2d 27 5d 29 20 4f | 52 20 28 74 68 6f 75 73 | '-']) O|R (thous|
|00000260| 53 65 70 20 49 4e 20 5b | 27 30 27 2e 2e 27 39 27 |Sep IN [|'0'..'9'|
|00000270| 2c 20 27 2d 27 5d 29 20 | 4f 52 20 28 64 65 63 69 |, '-']) |OR (deci|
|00000280| 6d 61 6c 50 74 20 3d 20 | 74 68 6f 75 73 53 65 70 |malPt = |thousSep|
|00000290| 29 20 54 48 45 4e 0d 09 | 09 09 09 09 46 61 69 6c |) THEN..|....Fail|
|000002a0| 4f 53 45 72 72 28 70 61 | 72 61 6d 45 72 72 29 3b |OSErr(pa|ramErr);|
|000002b0| 0d 09 09 09 09 67 44 65 | 66 61 75 6c 74 44 65 63 |.....gDe|faultDec|
|000002c0| 69 6d 61 6c 53 65 70 61 | 72 61 74 6f 72 20 3a 3d |imalSepa|rator :=|
|000002d0| 20 64 65 63 69 6d 61 6c | 50 74 3b 0d 09 09 09 09 | decimal|Pt;.....|
|000002e0| 67 44 65 66 61 75 6c 74 | 54 68 6f 75 73 61 6e 64 |gDefault|Thousand|
|000002f0| 73 53 65 70 61 72 61 74 | 6f 72 20 3a 3d 20 74 68 |sSeparat|or := th|
|00000300| 6f 75 73 53 65 70 3b 0d | 09 09 09 45 4e 44 3b 0d |ousSep;.|...END;.|
|00000310| 09 45 4e 44 3b 0d 0d 0d | 09 50 52 4f 43 45 44 55 |.END;...|.PROCEDU|
|00000320| 52 45 20 4c 6f 63 61 6c | 69 7a 65 4e 75 6d 62 65 |RE Local|izeNumbe|
|00000330| 72 53 74 72 69 6e 67 20 | 28 56 41 52 20 74 68 65 |rString |(VAR the|
|00000340| 53 74 72 69 6e 67 3a 20 | 53 74 72 32 35 35 29 3b |String: |Str255);|
|00000350| 0d 0d 09 09 56 41 52 0d | 09 09 09 62 6f 75 6e 64 |....VAR.|...bound|
|00000360| 61 72 79 3a 20 49 6e 74 | 65 67 65 72 3b 0d 09 09 |ary: Int|eger;...|
|00000370| 09 73 65 70 61 72 61 74 | 6f 72 53 74 72 69 6e 67 |.separat|orString|
|00000380| 3a 20 53 54 52 49 4e 47 | 5b 31 5d 3b 0d 09 09 09 |: STRING|[1];....|
|00000390| 6d 69 6e 75 73 4f 66 66 | 73 65 74 3a 20 49 6e 74 |minusOff|set: Int|
|000003a0| 65 67 65 72 3b 0d 0d 09 | 42 45 47 49 4e 0d 09 09 |eger;...|BEGIN...|
|000003b0| 73 65 70 61 72 61 74 6f | 72 53 74 72 69 6e 67 20 |separato|rString |
|000003c0| 3a 3d 20 27 2c 27 3b 0d | 09 09 73 65 70 61 72 61 |:= ',';.|..separa|
|000003d0| 74 6f 72 53 74 72 69 6e | 67 5b 31 5d 20 3a 3d 20 |torStrin|g[1] := |
|000003e0| 67 44 65 66 61 75 6c 74 | 54 68 6f 75 73 61 6e 64 |gDefault|Thousand|
|000003f0| 73 53 65 70 61 72 61 74 | 6f 72 3b 0d 0d 09 09 62 |sSeparat|or;....b|
|00000400| 6f 75 6e 64 61 72 79 20 | 3a 3d 20 50 6f 73 28 27 |oundary |:= Pos('|
|00000410| 2e 27 2c 20 74 68 65 53 | 74 72 69 6e 67 29 3b 0d |.', theS|tring);.|
|00000420| 09 09 49 46 20 62 6f 75 | 6e 64 61 72 79 20 3c 3e |..IF bou|ndary <>|
|00000430| 20 30 20 54 48 45 4e 0d | 09 09 09 74 68 65 53 74 | 0 THEN.|...theSt|
|00000440| 72 69 6e 67 5b 62 6f 75 | 6e 64 61 72 79 5d 20 3a |ring[bou|ndary] :|
|00000450| 3d 20 67 44 65 66 61 75 | 6c 74 44 65 63 69 6d 61 |= gDefau|ltDecima|
|00000460| 6c 53 65 70 61 72 61 74 | 6f 72 0d 09 09 45 4c 53 |lSeparat|or...ELS|
|00000470| 45 0d 09 09 09 62 6f 75 | 6e 64 61 72 79 20 3a 3d |E....bou|ndary :=|
|00000480| 20 4c 65 6e 67 74 68 28 | 74 68 65 53 74 72 69 6e | Length(|theStrin|
|00000490| 67 29 20 2b 20 31 3b 0d | 0d 09 09 49 46 20 67 44 |g) + 1;.|...IF gD|
|000004a0| 65 66 61 75 6c 74 54 68 | 6f 75 73 61 6e 64 73 53 |efaultTh|ousandsS|
|000004b0| 65 70 61 72 61 74 6f 72 | 20 3c 3e 20 43 68 61 72 |eparator| <> Char|
|000004c0| 28 30 29 20 54 48 45 4e | 20 42 45 47 49 4e 0d 09 |(0) THEN| BEGIN..|
|000004d0| 09 09 09 49 46 20 74 68 | 65 53 74 72 69 6e 67 5b |...IF th|eString[|
|000004e0| 31 5d 20 3d 20 27 2d 27 | 20 54 48 45 4e 0d 09 09 |1] = '-'| THEN...|
|000004f0| 09 09 09 6d 69 6e 75 73 | 4f 66 66 73 65 74 20 3a |...minus|Offset :|
|00000500| 3d 20 31 0d 09 09 09 09 | 45 4c 53 45 0d 09 09 09 |= 1.....|ELSE....|
|00000510| 09 09 6d 69 6e 75 73 4f | 66 66 73 65 74 20 3a 3d |..minusO|ffset :=|
|00000520| 20 30 3b 0d 09 09 09 09 | 57 48 49 4c 45 20 62 6f | 0;.....|WHILE bo|
|00000530| 75 6e 64 61 72 79 20 3e | 20 34 20 2b 20 6d 69 6e |undary >| 4 + min|
|00000540| 75 73 4f 66 66 73 65 74 | 20 44 4f 20 42 45 47 49 |usOffset| DO BEGI|
|00000550| 4e 0d 09 09 09 09 09 09 | 74 68 65 53 74 72 69 6e |N.......|theStrin|
|00000560| 67 20 3a 3d 20 43 6f 6e | 63 61 74 28 43 6f 70 79 |g := Con|cat(Copy|
|00000570| 28 74 68 65 53 74 72 69 | 6e 67 2c 20 31 2c 20 62 |(theStri|ng, 1, b|
|00000580| 6f 75 6e 64 61 72 79 20 | 2d 20 34 29 2c 20 73 65 |oundary |- 4), se|
|00000590| 70 61 72 61 74 6f 72 53 | 74 72 69 6e 67 2c 20 43 |paratorS|tring, C|
|000005a0| 6f 70 79 28 74 68 65 53 | 74 72 69 6e 67 2c 20 62 |opy(theS|tring, b|
|000005b0| 6f 75 6e 64 61 72 79 20 | 2d 20 33 2c 20 4c 65 6e |oundary |- 3, Len|
|000005c0| 67 74 68 28 74 68 65 53 | 74 72 69 6e 67 29 20 2d |gth(theS|tring) -|
|000005d0| 20 62 6f 75 6e 64 61 72 | 79 20 2b 20 34 29 29 3b | boundar|y + 4));|
|000005e0| 0d 09 09 09 09 09 09 62 | 6f 75 6e 64 61 72 79 20 |.......b|oundary |
|000005f0| 3a 3d 20 62 6f 75 6e 64 | 61 72 79 20 2d 20 33 3b |:= bound|ary - 3;|
|00000600| 0d 09 09 09 09 09 45 4e | 44 3b 0d 09 09 09 45 4e |......EN|D;....EN|
|00000610| 44 3b 0d 09 45 4e 44 3b | 0d 0d 0d 09 50 52 4f 43 |D;..END;|....PROC|
|00000620| 45 44 55 52 45 20 49 6e | 74 65 67 65 72 54 6f 4c |EDURE In|tegerToL|
|00000630| 6f 63 61 6c 53 74 72 69 | 6e 67 20 28 74 68 65 4e |ocalStri|ng (theN|
|00000640| 75 6d 62 65 72 3a 20 4c | 6f 6e 67 49 6e 74 3b 20 |umber: L|ongInt; |
|00000650| 56 41 52 20 74 68 65 53 | 74 72 69 6e 67 3a 20 53 |VAR theS|tring: S|
|00000660| 74 72 32 35 35 29 3b 0d | 0d 09 42 45 47 49 4e 0d |tr255);.|..BEGIN.|
|00000670| 09 09 4e 75 6d 54 6f 53 | 74 72 69 6e 67 28 74 68 |..NumToS|tring(th|
|00000680| 65 4e 75 6d 62 65 72 2c | 20 74 68 65 53 74 72 69 |eNumber,| theStri|
|00000690| 6e 67 29 3b 0d 09 09 4c | 6f 63 61 6c 69 7a 65 4e |ng);...L|ocalizeN|
|000006a0| 75 6d 62 65 72 53 74 72 | 69 6e 67 28 74 68 65 53 |umberStr|ing(theS|
|000006b0| 74 72 69 6e 67 29 3b 0d | 09 45 4e 44 3b 0d 0d 0d |tring);.|.END;...|
|000006c0| 09 50 52 4f 43 45 44 55 | 52 45 20 45 78 74 65 6e |.PROCEDU|RE Exten|
|000006d0| 64 65 64 54 6f 4c 6f 63 | 61 6c 53 74 72 69 6e 67 |dedToLoc|alString|
|000006e0| 20 28 74 68 65 4e 75 6d | 62 65 72 3a 20 45 78 74 | (theNum|ber: Ext|
|000006f0| 65 6e 64 65 64 3b 20 64 | 65 63 69 6d 61 6c 44 69 |ended; d|ecimalDi|
|00000700| 67 69 74 73 3a 20 49 6e | 74 65 67 65 72 3b 20 56 |gits: In|teger; V|
|00000710| 41 52 20 74 68 65 53 74 | 72 69 6e 67 3a 20 53 74 |AR theSt|ring: St|
|00000720| 72 32 35 35 29 3b 0d 0d | 09 09 56 41 52 0d 09 09 |r255);..|..VAR...|
|00000730| 09 74 68 65 44 65 63 46 | 6f 72 6d 3a 20 44 65 63 |.theDecF|orm: Dec|
|00000740| 46 6f 72 6d 3b 0d 0d 09 | 42 45 47 49 4e 0d 09 09 |Form;...|BEGIN...|
|00000750| 57 49 54 48 20 74 68 65 | 44 65 63 46 6f 72 6d 20 |WITH the|DecForm |
|00000760| 44 4f 20 42 45 47 49 4e | 0d 09 09 09 09 73 74 79 |DO BEGIN|.....sty|
|00000770| 6c 65 20 3a 3d 20 66 69 | 78 65 64 44 65 63 69 6d |le := fi|xedDecim|
|00000780| 61 6c 3b 0d 09 09 09 09 | 64 69 67 69 74 73 20 3a |al;.....|digits :|
|00000790| 3d 20 64 65 63 69 6d 61 | 6c 44 69 67 69 74 73 3b |= decima|lDigits;|
|000007a0| 0d 09 09 09 45 4e 44 3b | 0d 09 09 4e 75 6d 32 53 |....END;|...Num2S|
|000007b0| 74 72 28 74 68 65 44 65 | 63 46 6f 72 6d 2c 20 74 |tr(theDe|cForm, t|
|000007c0| 68 65 4e 75 6d 62 65 72 | 2c 20 44 65 63 53 74 72 |heNumber|, DecStr|
|000007d0| 28 74 68 65 53 74 72 69 | 6e 67 29 29 3b 0d 09 09 |(theStri|ng));...|
|000007e0| 4c 6f 63 61 6c 69 7a 65 | 4e 75 6d 62 65 72 53 74 |Localize|NumberSt|
|000007f0| 72 69 6e 67 28 74 68 65 | 53 74 72 69 6e 67 29 3b |ring(the|String);|
|00000800| 0d 09 45 4e 44 3b 0d 0d | 0d 09 56 41 52 0d 09 09 |..END;..|..VAR...|
|00000810| 67 55 73 65 72 4e 75 6d | 62 65 72 50 61 72 74 73 |gUserNum|berParts|
|00000820| 54 61 62 6c 65 3a 20 4e | 75 6d 62 65 72 50 61 72 |Table: N|umberPar|
|00000830| 74 73 50 74 72 3b 0d 09 | 09 67 52 65 66 65 72 65 |tsPtr;..|.gRefere|
|00000840| 6e 63 65 4e 75 6d 62 65 | 72 50 61 72 74 73 54 61 |nceNumbe|rPartsTa|
|00000850| 62 6c 65 3a 20 4e 75 6d | 62 65 72 50 61 72 74 73 |ble: Num|berParts|
|00000860| 50 74 72 3b 0d 0d 0d 09 | 56 41 52 0d 09 09 67 53 |Ptr;....|VAR...gS|
|00000870| 79 73 74 65 6d 56 65 72 | 73 69 6f 6e 3a 20 4c 6f |ystemVer|sion: Lo|
|00000880| 6e 67 49 6e 74 3b 0d 0d | 0d 09 46 55 4e 43 54 49 |ngInt;..|..FUNCTI|
|00000890| 4f 4e 20 47 65 74 55 73 | 65 72 49 74 6c 34 3a 20 |ON GetUs|erItl4: |
|000008a0| 48 61 6e 64 6c 65 3b 0d | 0d 09 09 56 41 52 0d 09 |Handle;.|...VAR..|
|000008b0| 09 09 74 68 65 49 74 6c | 34 48 61 6e 64 6c 65 3a |..theItl|4Handle:|
|000008c0| 20 48 61 6e 64 6c 65 3b | 0d 09 09 09 73 79 73 74 | Handle;|....syst|
|000008d0| 65 6d 53 63 72 69 70 74 | 3a 20 53 63 72 69 70 74 |emScript|: Script|
|000008e0| 43 6f 64 65 3b 0d 09 09 | 09 74 61 62 6c 65 4f 66 |Code;...|.tableOf|
|000008f0| 66 73 65 74 2c 20 74 61 | 62 6c 65 4c 65 6e 67 74 |fset, ta|bleLengt|
|00000900| 68 3a 20 4c 6f 6e 67 49 | 6e 74 3b 0d 09 09 09 74 |h: LongI|nt;....t|
|00000910| 68 65 49 74 6c 30 48 61 | 6e 64 6c 65 3a 20 48 61 |heItl0Ha|ndle: Ha|
|00000920| 6e 64 6c 65 3b 0d 09 09 | 09 74 68 65 52 65 73 49 |ndle;...|.theResI|
|00000930| 44 3a 20 49 6e 74 65 67 | 65 72 3b 0d 09 09 09 74 |D: Integ|er;....t|
|00000940| 68 65 52 65 73 54 79 70 | 65 3a 20 52 65 73 54 79 |heResTyp|e: ResTy|
|00000950| 70 65 3b 0d 09 09 09 74 | 68 65 52 65 73 4e 61 6d |pe;....t|heResNam|
|00000960| 65 3a 20 53 74 72 32 35 | 35 3b 0d 0d 09 42 45 47 |e: Str25|5;...BEG|
|00000970| 49 4e 0d 0d 09 09 49 46 | 20 67 53 79 73 74 65 6d |IN....IF| gSystem|
|00000980| 56 65 72 73 69 6f 6e 20 | 3e 3d 20 24 30 37 31 30 |Version |>= $0710|
|00000990| 20 54 48 45 4e 20 42 45 | 47 49 4e 0d 09 09 09 09 | THEN BE|GIN.....|
|000009a0| 73 79 73 74 65 6d 53 63 | 72 69 70 74 20 3a 3d 20 |systemSc|ript := |
|000009b0| 47 65 74 45 6e 76 69 72 | 6f 6e 73 28 73 6d 53 79 |GetEnvir|ons(smSy|
|000009c0| 73 53 63 72 69 70 74 29 | 3b 0d 09 09 09 09 49 55 |sScript)|;.....IU|
|000009d0| 47 65 74 49 74 6c 54 61 | 62 6c 65 28 73 79 73 74 |GetItlTa|ble(syst|
|000009e0| 65 6d 53 63 72 69 70 74 | 2c 20 69 75 4e 75 6d 62 |emScript|, iuNumb|
|000009f0| 65 72 50 61 72 74 73 54 | 61 62 6c 65 2c 20 74 68 |erPartsT|able, th|
|00000a00| 65 49 74 6c 34 48 61 6e | 64 6c 65 2c 20 74 61 62 |eItl4Han|dle, tab|
|00000a10| 6c 65 4f 66 66 73 65 74 | 2c 20 74 61 62 6c 65 4c |leOffset|, tableL|
|00000a20| 65 6e 67 74 68 29 3b 0d | 09 09 09 09 46 61 69 6c |ength);.|....Fail|
|00000a30| 4e 49 4c 52 65 73 6f 75 | 72 63 65 28 74 68 65 49 |NILResou|rce(theI|
|00000a40| 74 6c 34 48 61 6e 64 6c | 65 29 3b 0d 09 09 09 45 |tl4Handl|e);....E|
|00000a50| 4e 44 0d 0d 09 09 45 4c | 53 45 20 42 45 47 49 4e |ND....EL|SE BEGIN|
|00000a60| 0d 09 09 09 09 74 68 65 | 49 74 6c 30 48 61 6e 64 |.....the|Itl0Hand|
|00000a70| 6c 65 20 3a 3d 20 49 55 | 47 65 74 49 6e 74 6c 28 |le := IU|GetIntl(|
|00000a80| 30 29 3b 0d 09 09 09 09 | 46 61 69 6c 4e 49 4c 52 |0);.....|FailNILR|
|00000a90| 65 73 6f 75 72 63 65 28 | 74 68 65 49 74 6c 30 48 |esource(|theItl0H|
|00000aa0| 61 6e 64 6c 65 29 3b 0d | 09 09 09 09 47 65 74 52 |andle);.|....GetR|
|00000ab0| 65 73 49 6e 66 6f 28 74 | 68 65 49 74 6c 30 48 61 |esInfo(t|heItl0Ha|
|00000ac0| 6e 64 6c 65 2c 20 74 68 | 65 52 65 73 49 44 2c 20 |ndle, th|eResID, |
|00000ad0| 74 68 65 52 65 73 54 79 | 70 65 2c 20 74 68 65 52 |theResTy|pe, theR|
|00000ae0| 65 73 4e 61 6d 65 29 3b | 0d 09 09 09 09 74 68 65 |esName);|.....the|
|00000af0| 49 74 6c 34 48 61 6e 64 | 6c 65 20 3a 3d 20 47 65 |Itl4Hand|le := Ge|
|00000b00| 74 52 65 73 6f 75 72 63 | 65 28 27 69 74 6c 34 27 |tResourc|e('itl4'|
|00000b10| 2c 20 74 68 65 52 65 73 | 49 44 29 3b 0d 0d 09 09 |, theRes|ID);....|
|00000b20| 09 09 49 46 20 52 65 73 | 45 72 72 6f 72 20 3d 20 |..IF Res|Error = |
|00000b30| 72 65 73 4e 6f 74 46 6f | 75 6e 64 20 54 48 45 4e |resNotFo|und THEN|
|00000b40| 20 42 45 47 49 4e 0d 09 | 09 09 09 09 09 43 41 53 | BEGIN..|.....CAS|
|00000b50| 45 20 74 68 65 52 65 73 | 49 44 20 4f 46 0d 09 09 |E theRes|ID OF...|
|00000b60| 09 09 09 09 09 36 3a 20 | 0d 09 09 09 09 09 09 09 |.....6: |........|
|00000b70| 09 74 68 65 52 65 73 49 | 44 20 3a 3d 20 35 3b 09 |.theResI|D := 5;.|
|00000b80| 7b 20 4e 65 74 68 65 72 | 6c 61 6e 64 73 20 7d 0d |{ Nether|lands }.|
|00000b90| 09 09 09 09 09 09 09 33 | 30 37 37 37 2c 20 35 36 |.......3|0777, 56|
|00000ba0| 2c 20 35 37 3a 20 0d 09 | 09 09 09 09 09 09 09 74 |, 57: ..|.......t|
|00000bb0| 68 65 52 65 73 49 44 20 | 3a 3d 20 33 30 37 37 36 |heResID |:= 30776|
|00000bc0| 3b 20 7b 20 43 7a 65 63 | 68 6f 73 6c 6f 76 61 6b |; { Czec|hoslovak|
|00000bd0| 69 61 20 7d 0d 09 09 09 | 09 09 09 09 4f 54 48 45 |ia }....|....OTHE|
|00000be0| 52 57 49 53 45 0d 09 09 | 09 09 09 09 09 09 74 68 |RWISE...|......th|
|00000bf0| 65 52 65 73 49 44 20 3a | 3d 20 76 65 72 55 53 3b |eResID :|= verUS;|
|00000c00| 0d 09 09 09 09 09 09 45 | 4e 44 3b 0d 09 09 09 09 |.......E|ND;.....|
|00000c10| 09 09 74 68 65 49 74 6c | 34 48 61 6e 64 6c 65 20 |..theItl|4Handle |
|00000c20| 3a 3d 20 47 65 74 52 65 | 73 6f 75 72 63 65 28 27 |:= GetRe|source('|
|00000c30| 69 74 6c 34 27 2c 20 74 | 68 65 52 65 73 49 44 29 |itl4', t|heResID)|
|00000c40| 3b 0d 09 09 09 09 09 09 | 46 61 69 6c 4e 49 4c 52 |;.......|FailNILR|
|00000c50| 65 73 6f 75 72 63 65 28 | 74 68 65 49 74 6c 34 48 |esource(|theItl4H|
|00000c60| 61 6e 64 6c 65 29 3b 0d | 09 09 09 09 09 45 4e 44 |andle);.|.....END|
|00000c70| 0d 09 09 09 09 45 4c 53 | 45 0d 09 09 09 09 09 46 |.....ELS|E......F|
|00000c80| 61 69 6c 4e 49 4c 52 65 | 73 6f 75 72 63 65 28 74 |ailNILRe|source(t|
|00000c90| 68 65 49 74 6c 34 48 61 | 6e 64 6c 65 29 3b 0d 09 |heItl4Ha|ndle);..|
|00000ca0| 09 09 45 4e 44 3b 0d 09 | 09 47 65 74 55 73 65 72 |..END;..|.GetUser|
|00000cb0| 49 74 6c 34 20 3a 3d 20 | 74 68 65 49 74 6c 34 48 |Itl4 := |theItl4H|
|00000cc0| 61 6e 64 6c 65 3b 0d 09 | 45 4e 44 3b 0d 0d 0d 09 |andle;..|END;....|
|00000cd0| 50 52 4f 43 45 44 55 52 | 45 20 43 68 65 63 6b 44 |PROCEDUR|E CheckD|
|00000ce0| 65 66 61 75 6c 74 4e 75 | 6d 62 65 72 53 65 70 61 |efaultNu|mberSepa|
|00000cf0| 72 61 74 6f 72 73 20 28 | 75 73 65 72 4e 75 6d 62 |rators (|userNumb|
|00000d00| 65 72 50 61 72 74 73 54 | 61 62 6c 65 3a 20 4e 75 |erPartsT|able: Nu|
|00000d10| 6d 62 65 72 50 61 72 74 | 73 50 74 72 29 3b 0d 0d |mberPart|sPtr);..|
|00000d20| 09 09 43 4f 4e 53 54 0d | 09 09 09 74 65 73 74 53 |..CONST.|...testS|
|00000d30| 74 72 69 6e 67 20 3d 20 | 27 30 27 3b 0d 0d 09 09 |tring = |'0';....|
|00000d40| 56 41 52 0d 09 09 09 66 | 6f 72 6d 61 74 52 65 63 |VAR....f|ormatRec|
|00000d50| 6f 72 64 3a 20 4e 75 6d | 46 6f 72 6d 61 74 53 74 |ord: Num|FormatSt|
|00000d60| 72 69 6e 67 3b 0d 09 09 | 09 72 65 73 75 6c 74 3a |ring;...|.result:|
|00000d70| 20 46 6f 72 6d 61 74 53 | 74 61 74 75 73 3b 0d 0d | FormatS|tatus;..|
|00000d80| 09 42 45 47 49 4e 0d 09 | 09 72 65 73 75 6c 74 20 |.BEGIN..|.result |
|00000d90| 3a 3d 20 53 74 72 32 46 | 6f 72 6d 61 74 28 74 65 |:= Str2F|ormat(te|
|00000da0| 73 74 53 74 72 69 6e 67 | 2c 20 75 73 65 72 4e 75 |stString|, userNu|
|00000db0| 6d 62 65 72 50 61 72 74 | 73 54 61 62 6c 65 5e 2c |mberPart|sTable^,|
|00000dc0| 20 66 6f 72 6d 61 74 52 | 65 63 6f 72 64 29 3b 0d | formatR|ecord);.|
|00000dd0| 09 09 49 46 20 46 6f 72 | 6d 61 74 52 65 73 75 6c |..IF For|matResul|
|00000de0| 74 54 79 70 65 28 72 65 | 73 75 6c 74 29 20 3c 3e |tType(re|sult) <>|
|00000df0| 20 66 46 6f 72 6d 61 74 | 4f 4b 20 54 48 45 4e 0d | fFormat|OK THEN.|
|00000e00| 09 09 09 46 61 69 6c 4f | 53 45 72 72 28 70 61 72 |...FailO|SErr(par|
|00000e10| 61 6d 45 72 72 29 3b 0d | 09 45 4e 44 3b 0d 0d 0d |amErr);.|.END;...|
|00000e20| 09 46 55 4e 43 54 49 4f | 4e 20 45 78 74 72 61 63 |.FUNCTIO|N Extrac|
|00000e30| 74 4e 75 6d 62 65 72 50 | 61 72 74 73 54 61 62 6c |tNumberP|artsTabl|
|00000e40| 65 20 28 74 68 65 49 74 | 6c 34 48 61 6e 64 6c 65 |e (theIt|l4Handle|
|00000e50| 3a 20 48 61 6e 64 6c 65 | 29 3a 20 4e 75 6d 62 65 |: Handle|): Numbe|
|00000e60| 72 50 61 72 74 73 50 74 | 72 3b 0d 0d 09 09 56 41 |rPartsPt|r;....VA|
|00000e70| 52 0d 09 09 09 74 61 62 | 6c 65 4f 66 66 73 65 74 |R....tab|leOffset|
|00000e80| 2c 20 74 61 62 6c 65 4c | 65 6e 67 74 68 3a 20 4c |, tableL|ength: L|
|00000e90| 6f 6e 67 49 6e 74 3b 0d | 09 09 09 74 68 65 54 61 |ongInt;.|...theTa|
|00000ea0| 62 6c 65 3a 20 50 74 72 | 3b 0d 0d 09 42 45 47 49 |ble: Ptr|;...BEGI|
|00000eb0| 4e 0d 09 09 57 49 54 48 | 20 4e 49 74 6c 34 48 61 |N...WITH| NItl4Ha|
|00000ec0| 6e 64 6c 65 28 74 68 65 | 49 74 6c 34 48 61 6e 64 |ndle(the|Itl4Hand|
|00000ed0| 6c 65 29 5e 5e 20 44 4f | 20 42 45 47 49 4e 0d 09 |le)^^ DO| BEGIN..|
|00000ee0| 09 09 09 74 61 62 6c 65 | 4f 66 66 73 65 74 20 3a |...table|Offset :|
|00000ef0| 3d 20 64 65 66 50 61 72 | 74 73 4f 66 66 73 65 74 |= defPar|tsOffset|
|00000f00| 3b 0d 09 09 09 09 74 61 | 62 6c 65 4c 65 6e 67 74 |;.....ta|bleLengt|
|00000f10| 68 20 3a 3d 20 64 65 66 | 50 61 72 74 73 4c 65 6e |h := def|PartsLen|
|00000f20| 67 74 68 3b 0d 09 09 09 | 45 4e 44 3b 0d 09 09 74 |gth;....|END;...t|
|00000f30| 68 65 54 61 62 6c 65 20 | 3a 3d 20 4e 65 77 50 74 |heTable |:= NewPt|
|00000f40| 72 28 74 61 62 6c 65 4c | 65 6e 67 74 68 29 3b 0d |r(tableL|ength);.|
|00000f50| 09 09 46 61 69 6c 4e 69 | 6c 28 74 68 65 54 61 62 |..FailNi|l(theTab|
|00000f60| 6c 65 29 3b 0d 09 09 4c | 6f 61 64 52 65 73 6f 75 |le);...L|oadResou|
|00000f70| 72 63 65 28 74 68 65 49 | 74 6c 34 48 61 6e 64 6c |rce(theI|tl4Handl|
|00000f80| 65 29 3b 20 7b 20 4d 69 | 67 68 74 20 68 61 76 65 |e); { Mi|ght have|
|00000f90| 20 62 65 65 6e 20 70 75 | 72 67 65 64 20 73 69 6e | been pu|rged sin|
|00000fa0| 63 65 20 77 65 20 67 6f | 74 20 68 6f 6c 64 20 6f |ce we go|t hold o|
|00000fb0| 66 20 69 74 20 7d 0d 09 | 09 46 61 69 6c 52 65 73 |f it }..|.FailRes|
|00000fc0| 45 72 72 6f 72 3b 0d 09 | 09 42 6c 6f 63 6b 4d 6f |Error;..|.BlockMo|
|00000fd0| 76 65 28 50 74 72 28 4c | 6f 6e 67 49 6e 74 28 74 |ve(Ptr(L|ongInt(t|
|00000fe0| 68 65 49 74 6c 34 48 61 | 6e 64 6c 65 5e 29 20 2b |heItl4Ha|ndle^) +|
|00000ff0| 20 74 61 62 6c 65 4f 66 | 66 73 65 74 29 2c 20 74 | tableOf|fset), t|
|00001000| 68 65 54 61 62 6c 65 2c | 20 74 61 62 6c 65 4c 65 |heTable,| tableLe|
|00001010| 6e 67 74 68 29 3b 0d 09 | 09 45 78 74 72 61 63 74 |ngth);..|.Extract|
|00001020| 4e 75 6d 62 65 72 50 61 | 72 74 73 54 61 62 6c 65 |NumberPa|rtsTable|
|00001030| 20 3a 3d 20 4e 75 6d 62 | 65 72 50 61 72 74 73 50 | := Numb|erPartsP|
|00001040| 74 72 28 74 68 65 54 61 | 62 6c 65 29 3b 0d 09 45 |tr(theTa|ble);..E|
|00001050| 4e 44 3b 0d 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |ND;....P|ROCEDURE|
|00001060| 20 49 6e 69 74 69 61 6c | 69 7a 65 4e 75 6d 62 65 | Initial|izeNumbe|
|00001070| 72 50 61 72 74 73 54 61 | 62 6c 65 73 3b 0d 0d 09 |rPartsTa|bles;...|
|00001080| 09 56 41 52 0d 09 09 09 | 75 73 65 72 49 74 6c 34 |.VAR....|userItl4|
|00001090| 2c 20 75 73 49 74 6c 34 | 3a 20 48 61 6e 64 6c 65 |, usItl4|: Handle|
|000010a0| 3b 0d 0d 09 42 45 47 49 | 4e 0d 09 09 75 73 65 72 |;...BEGI|N...user|
|000010b0| 49 74 6c 34 20 3a 3d 20 | 47 65 74 55 73 65 72 49 |Itl4 := |GetUserI|
|000010c0| 74 6c 34 3b 0d 09 09 75 | 73 49 74 6c 34 20 3a 3d |tl4;...u|sItl4 :=|
|000010d0| 20 47 65 74 52 65 73 6f | 75 72 63 65 28 27 69 74 | GetReso|urce('it|
|000010e0| 6c 34 27 2c 20 76 65 72 | 55 53 29 3b 0d 09 09 46 |l4', ver|US);...F|
|000010f0| 61 69 6c 4e 49 4c 52 65 | 73 6f 75 72 63 65 28 75 |ailNILRe|source(u|
|00001100| 73 49 74 6c 34 29 3b 0d | 09 09 67 55 73 65 72 4e |sItl4);.|..gUserN|
|00001110| 75 6d 62 65 72 50 61 72 | 74 73 54 61 62 6c 65 20 |umberPar|tsTable |
|00001120| 3a 3d 20 45 78 74 72 61 | 63 74 4e 75 6d 62 65 72 |:= Extra|ctNumber|
|00001130| 50 61 72 74 73 54 61 62 | 6c 65 28 75 73 65 72 49 |PartsTab|le(userI|
|00001140| 74 6c 34 29 3b 0d 09 09 | 43 68 65 63 6b 44 65 66 |tl4);...|CheckDef|
|00001150| 61 75 6c 74 4e 75 6d 62 | 65 72 53 65 70 61 72 61 |aultNumb|erSepara|
|00001160| 74 6f 72 73 28 67 55 73 | 65 72 4e 75 6d 62 65 72 |tors(gUs|erNumber|
|00001170| 50 61 72 74 73 54 61 62 | 6c 65 29 3b 0d 0d 09 09 |PartsTab|le);....|
|00001180| 49 46 20 28 75 73 49 74 | 6c 34 20 3d 20 75 73 65 |IF (usIt|l4 = use|
|00001190| 72 49 74 6c 34 29 20 41 | 4e 44 20 28 28 67 53 79 |rItl4) A|ND ((gSy|
|000011a0| 73 74 65 6d 56 65 72 73 | 69 6f 6e 20 3c 20 24 30 |stemVers|ion < $0|
|000011b0| 37 31 30 29 20 4f 52 20 | 28 28 67 44 65 66 61 75 |710) OR |((gDefau|
|000011c0| 6c 74 44 65 63 69 6d 61 | 6c 53 65 70 61 72 61 74 |ltDecima|lSeparat|
|000011d0| 6f 72 20 3d 20 27 2e 27 | 29 20 41 4e 44 20 28 67 |or = '.'|) AND (g|
|000011e0| 44 65 66 61 75 6c 74 54 | 68 6f 75 73 61 6e 64 73 |DefaultT|housands|
|000011f0| 53 65 70 61 72 61 74 6f | 72 20 3d 20 27 2c 27 29 |Separato|r = ',')|
|00001200| 29 29 20 54 48 45 4e 0d | 09 09 09 67 52 65 66 65 |)) THEN.|...gRefe|
|00001210| 72 65 6e 63 65 4e 75 6d | 62 65 72 50 61 72 74 73 |renceNum|berParts|
|00001220| 54 61 62 6c 65 20 3a 3d | 20 67 55 73 65 72 4e 75 |Table :=| gUserNu|
|00001230| 6d 62 65 72 50 61 72 74 | 73 54 61 62 6c 65 0d 09 |mberPart|sTable..|
|00001240| 09 45 4c 53 45 20 42 45 | 47 49 4e 0d 09 09 09 09 |.ELSE BE|GIN.....|
|00001250| 67 52 65 66 65 72 65 6e | 63 65 4e 75 6d 62 65 72 |gReferen|ceNumber|
|00001260| 50 61 72 74 73 54 61 62 | 6c 65 20 3a 3d 20 45 78 |PartsTab|le := Ex|
|00001270| 74 72 61 63 74 4e 75 6d | 62 65 72 50 61 72 74 73 |tractNum|berParts|
|00001280| 54 61 62 6c 65 28 75 73 | 49 74 6c 34 29 3b 0d 09 |Table(us|Itl4);..|
|00001290| 09 09 09 67 52 65 66 65 | 72 65 6e 63 65 4e 75 6d |...gRefe|renceNum|
|000012a0| 62 65 72 50 61 72 74 73 | 54 61 62 6c 65 5e 2e 64 |berParts|Table^.d|
|000012b0| 61 74 61 5b 74 6f 6b 44 | 65 63 50 6f 69 6e 74 5d |ata[tokD|ecPoint]|
|000012c0| 2e 61 5b 31 5d 20 3a 3d | 20 27 2e 27 3b 0d 09 09 |.a[1] :=| '.';...|
|000012d0| 09 09 67 52 65 66 65 72 | 65 6e 63 65 4e 75 6d 62 |..gRefer|enceNumb|
|000012e0| 65 72 50 61 72 74 73 54 | 61 62 6c 65 5e 2e 64 61 |erPartsT|able^.da|
|000012f0| 74 61 5b 74 6f 6b 54 68 | 6f 75 73 61 6e 64 73 5d |ta[tokTh|ousands]|
|00001300| 2e 61 5b 31 5d 20 3a 3d | 20 27 2c 27 3b 0d 09 09 |.a[1] :=| ',';...|
|00001310| 09 45 4e 44 3b 0d 09 45 | 4e 44 3b 0d 0d 0d 09 50 |.END;..E|ND;....P|
|00001320| 52 4f 43 45 44 55 52 45 | 20 44 69 73 70 6f 73 65 |ROCEDURE| Dispose|
|00001330| 4e 75 6d 62 65 72 50 61 | 72 74 73 54 61 62 6c 65 |NumberPa|rtsTable|
|00001340| 73 3b 0d 0d 09 42 45 47 | 49 4e 0d 09 09 49 46 20 |s;...BEG|IN...IF |
|00001350| 67 52 65 66 65 72 65 6e | 63 65 4e 75 6d 62 65 72 |gReferen|ceNumber|
|00001360| 50 61 72 74 73 54 61 62 | 6c 65 20 3c 3e 20 67 55 |PartsTab|le <> gU|
|00001370| 73 65 72 4e 75 6d 62 65 | 72 50 61 72 74 73 54 61 |serNumbe|rPartsTa|
|00001380| 62 6c 65 20 54 48 45 4e | 0d 09 09 09 44 69 73 70 |ble THEN|....Disp|
|00001390| 6f 73 50 74 72 28 50 74 | 72 28 67 52 65 66 65 72 |osPtr(Pt|r(gRefer|
|000013a0| 65 6e 63 65 4e 75 6d 62 | 65 72 50 61 72 74 73 54 |enceNumb|erPartsT|
|000013b0| 61 62 6c 65 29 29 3b 0d | 09 09 44 69 73 70 6f 73 |able));.|..Dispos|
|000013c0| 50 74 72 28 50 74 72 28 | 67 55 73 65 72 4e 75 6d |Ptr(Ptr(|gUserNum|
|000013d0| 62 65 72 50 61 72 74 73 | 54 61 62 6c 65 29 29 3b |berParts|Table));|
|000013e0| 0d 09 09 67 52 65 66 65 | 72 65 6e 63 65 4e 75 6d |...gRefe|renceNum|
|000013f0| 62 65 72 50 61 72 74 73 | 54 61 62 6c 65 20 3a 3d |berParts|Table :=|
|00001400| 20 4e 49 4c 3b 0d 09 09 | 67 55 73 65 72 4e 75 6d | NIL;...|gUserNum|
|00001410| 62 65 72 50 61 72 74 73 | 54 61 62 6c 65 20 3a 3d |berParts|Table :=|
|00001420| 20 4e 49 4c 3b 0d 09 45 | 4e 44 3b 0d 0d 0d 09 50 | NIL;..E|ND;....P|
|00001430| 52 4f 43 45 44 55 52 45 | 20 53 74 72 69 6e 67 54 |ROCEDURE| StringT|
|00001440| 6f 46 6f 72 6d 61 74 52 | 65 63 6f 72 64 20 28 66 |oFormatR|ecord (f|
|00001450| 6f 72 6d 61 74 53 74 72 | 69 6e 67 3a 20 53 74 72 |ormatStr|ing: Str|
|00001460| 32 35 35 3b 20 75 73 65 | 41 6c 74 65 72 6e 61 74 |255; use|Alternat|
|00001470| 65 4e 75 6d 65 72 61 6c | 73 3a 20 42 6f 6f 6c 65 |eNumeral|s: Boole|
|00001480| 61 6e 3b 20 74 68 65 4e | 75 6d 62 65 72 50 61 72 |an; theN|umberPar|
|00001490| 74 73 54 61 62 6c 65 3a | 20 4e 75 6d 62 65 72 50 |tsTable:| NumberP|
|000014a0| 61 72 74 73 50 74 72 3b | 20 56 41 52 20 66 6f 72 |artsPtr;| VAR for|
|000014b0| 6d 61 74 52 65 63 6f 72 | 64 3a 20 4e 75 6d 46 6f |matRecor|d: NumFo|
|000014c0| 72 6d 61 74 53 74 72 69 | 6e 67 29 3b 0d 0d 09 09 |rmatStri|ng);....|
|000014d0| 56 41 52 0d 09 09 09 72 | 65 73 75 6c 74 3a 20 46 |VAR....r|esult: F|
|000014e0| 6f 72 6d 61 74 53 74 61 | 74 75 73 3b 0d 09 09 09 |ormatSta|tus;....|
|000014f0| 6f 6c 64 43 68 61 72 3a | 20 57 69 64 65 43 68 61 |oldChar:| WideCha|
|00001500| 72 3b 0d 09 09 09 69 3a | 20 49 6e 74 65 67 65 72 |r;....i:| Integer|
|00001510| 3b 0d 0d 09 42 45 47 49 | 4e 0d 09 09 49 46 20 75 |;...BEGI|N...IF u|
|00001520| 73 65 41 6c 74 65 72 6e | 61 74 65 4e 75 6d 65 72 |seAltern|ateNumer|
|00001530| 61 6c 73 20 54 48 45 4e | 20 42 45 47 49 4e 0d 09 |als THEN| BEGIN..|
|00001540| 09 09 09 6f 6c 64 43 68 | 61 72 20 3a 3d 20 74 68 |...oldCh|ar := th|
|00001550| 65 4e 75 6d 62 65 72 50 | 61 72 74 73 54 61 62 6c |eNumberP|artsTabl|
|00001560| 65 5e 2e 64 61 74 61 5b | 74 6f 6b 4e 6f 6e 4c 65 |e^.data[|tokNonLe|
|00001570| 61 64 65 72 5d 3b 0d 09 | 09 09 09 74 68 65 4e 75 |ader];..|...theNu|
|00001580| 6d 62 65 72 50 61 72 74 | 73 54 61 62 6c 65 5e 2e |mberPart|sTable^.|
|00001590| 64 61 74 61 5b 74 6f 6b | 4e 6f 6e 4c 65 61 64 65 |data[tok|NonLeade|
|000015a0| 72 5d 2e 62 20 3a 3d 20 | 4f 72 64 28 27 31 27 29 |r].b := |Ord('1')|
|000015b0| 3b 0d 09 09 09 09 46 4f | 52 20 69 20 3a 3d 20 31 |;.....FO|R i := 1|
|000015c0| 20 54 4f 20 4c 65 6e 67 | 74 68 28 66 6f 72 6d 61 | TO Leng|th(forma|
|000015d0| 74 53 74 72 69 6e 67 29 | 20 44 4f 0d 09 09 09 09 |tString)| DO.....|
|000015e0| 09 49 46 20 66 6f 72 6d | 61 74 53 74 72 69 6e 67 |.IF form|atString|
|000015f0| 5b 69 5d 20 3d 20 27 23 | 27 20 54 48 45 4e 0d 09 |[i] = '#|' THEN..|
|00001600| 09 09 09 09 09 66 6f 72 | 6d 61 74 53 74 72 69 6e |.....for|matStrin|
|00001610| 67 5b 69 5d 20 3a 3d 20 | 27 31 27 3b 0d 09 09 09 |g[i] := |'1';....|
|00001620| 45 4e 44 3b 0d 09 09 72 | 65 73 75 6c 74 20 3a 3d |END;...r|esult :=|
|00001630| 20 53 74 72 32 46 6f 72 | 6d 61 74 28 66 6f 72 6d | Str2For|mat(form|
|00001640| 61 74 53 74 72 69 6e 67 | 2c 20 74 68 65 4e 75 6d |atString|, theNum|
|00001650| 62 65 72 50 61 72 74 73 | 54 61 62 6c 65 5e 2c 20 |berParts|Table^, |
|00001660| 66 6f 72 6d 61 74 52 65 | 63 6f 72 64 29 3b 0d 09 |formatRe|cord);..|
|00001670| 09 49 46 20 75 73 65 41 | 6c 74 65 72 6e 61 74 65 |.IF useA|lternate|
|00001680| 4e 75 6d 65 72 61 6c 73 | 20 54 48 45 4e 0d 09 09 |Numerals| THEN...|
|00001690| 09 74 68 65 4e 75 6d 62 | 65 72 50 61 72 74 73 54 |.theNumb|erPartsT|
|000016a0| 61 62 6c 65 5e 2e 64 61 | 74 61 5b 74 6f 6b 4e 6f |able^.da|ta[tokNo|
|000016b0| 6e 4c 65 61 64 65 72 5d | 20 3a 3d 20 6f 6c 64 43 |nLeader]| := oldC|
|000016c0| 68 61 72 3b 0d 09 09 49 | 46 20 46 6f 72 6d 61 74 |har;...I|F Format|
|000016d0| 52 65 73 75 6c 74 54 79 | 70 65 28 72 65 73 75 6c |ResultTy|pe(resul|
|000016e0| 74 29 20 3c 3e 20 66 46 | 6f 72 6d 61 74 4f 4b 20 |t) <> fF|ormatOK |
|000016f0| 54 48 45 4e 0d 09 09 09 | 46 61 69 6c 4f 53 45 72 |THEN....|FailOSEr|
|00001700| 72 28 70 61 72 61 6d 45 | 72 72 29 3b 0d 09 45 4e |r(paramE|rr);..EN|
|00001710| 44 3b 0d 0d 0d 09 46 55 | 4e 43 54 49 4f 4e 20 48 |D;....FU|NCTION H|
|00001720| 61 73 41 6c 74 65 72 6e | 61 74 65 4e 75 6d 65 72 |asAltern|ateNumer|
|00001730| 61 6c 73 20 28 61 4e 75 | 6d 62 65 72 50 61 72 74 |als (aNu|mberPart|
|00001740| 73 54 61 62 6c 65 3a 20 | 4e 75 6d 62 65 72 50 61 |sTable: |NumberPa|
|00001750| 72 74 73 50 74 72 29 3a | 20 42 6f 6f 6c 65 61 6e |rtsPtr):| Boolean|
|00001760| 3b 0d 0d 09 42 45 47 49 | 4e 0d 09 09 48 61 73 41 |;...BEGI|N...HasA|
|00001770| 6c 74 65 72 6e 61 74 65 | 4e 75 6d 65 72 61 6c 73 |lternate|Numerals|
|00001780| 20 3a 3d 20 61 4e 75 6d | 62 65 72 50 61 72 74 73 | := aNum|berParts|
|00001790| 54 61 62 6c 65 5e 2e 61 | 6c 74 4e 75 6d 54 61 62 |Table^.a|ltNumTab|
|000017a0| 6c 65 2e 64 61 74 61 5b | 30 5d 2e 62 20 3c 3e 20 |le.data[|0].b <> |
|000017b0| 4f 72 64 28 27 30 27 29 | 3b 0d 09 45 4e 44 3b 0d |Ord('0')|;..END;.|
|000017c0| 0d 0d 09 50 52 4f 43 45 | 44 55 52 45 20 50 72 65 |...PROCE|DURE Pre|
|000017d0| 64 65 66 69 6e 65 64 53 | 74 72 69 6e 67 54 6f 46 |definedS|tringToF|
|000017e0| 6f 72 6d 61 74 52 65 63 | 6f 72 64 20 28 70 72 65 |ormatRec|ord (pre|
|000017f0| 64 65 66 69 6e 65 64 46 | 6f 72 6d 61 74 53 74 72 |definedF|ormatStr|
|00001800| 69 6e 67 3a 20 53 74 72 | 32 35 35 3b 20 75 73 65 |ing: Str|255; use|
|00001810| 41 6c 74 65 72 6e 61 74 | 65 4e 75 6d 65 72 61 6c |Alternat|eNumeral|
|00001820| 73 3a 20 42 6f 6f 6c 65 | 61 6e 3b 20 56 41 52 20 |s: Boole|an; VAR |
|00001830| 66 6f 72 6d 61 74 52 65 | 63 6f 72 64 3a 20 4e 75 |formatRe|cord: Nu|
|00001840| 6d 46 6f 72 6d 61 74 53 | 74 72 69 6e 67 29 3b 0d |mFormatS|tring);.|
|00001850| 0d 09 42 45 47 49 4e 0d | 09 09 53 74 72 69 6e 67 |..BEGIN.|..String|
|00001860| 54 6f 46 6f 72 6d 61 74 | 52 65 63 6f 72 64 28 70 |ToFormat|Record(p|
|00001870| 72 65 64 65 66 69 6e 65 | 64 46 6f 72 6d 61 74 53 |redefine|dFormatS|
|00001880| 74 72 69 6e 67 2c 20 75 | 73 65 41 6c 74 65 72 6e |tring, u|seAltern|
|00001890| 61 74 65 4e 75 6d 65 72 | 61 6c 73 2c 20 67 52 65 |ateNumer|als, gRe|
|000018a0| 66 65 72 65 6e 63 65 4e | 75 6d 62 65 72 50 61 72 |ferenceN|umberPar|
|000018b0| 74 73 54 61 62 6c 65 2c | 20 66 6f 72 6d 61 74 52 |tsTable,| formatR|
|000018c0| 65 63 6f 72 64 29 3b 0d | 09 45 4e 44 3b 0d 0d 0d |ecord);.|.END;...|
|000018d0| 09 50 52 4f 43 45 44 55 | 52 45 20 46 6f 72 6d 61 |.PROCEDU|RE Forma|
|000018e0| 74 52 65 63 6f 72 64 54 | 6f 55 73 65 72 53 74 72 |tRecordT|oUserStr|
|000018f0| 69 6e 67 20 28 66 6f 72 | 6d 61 74 52 65 63 6f 72 |ing (for|matRecor|
|00001900| 64 3a 20 4e 75 6d 46 6f | 72 6d 61 74 53 74 72 69 |d: NumFo|rmatStri|
|00001910| 6e 67 3b 20 56 41 52 20 | 75 73 65 72 46 6f 72 6d |ng; VAR |userForm|
|00001920| 61 74 53 74 72 69 6e 67 | 3a 20 53 74 72 32 35 35 |atString|: Str255|
|00001930| 29 3b 0d 0d 09 09 56 41 | 52 0d 09 09 09 72 65 73 |);....VA|R....res|
|00001940| 75 6c 74 3a 20 46 6f 72 | 6d 61 74 53 74 61 74 75 |ult: For|matStatu|
|00001950| 73 3b 0d 09 09 09 70 6f | 73 69 74 69 6f 6e 73 3a |s;....po|sitions:|
|00001960| 20 54 72 69 70 6c 65 49 | 6e 74 3b 0d 0d 09 42 45 | TripleI|nt;...BE|
|00001970| 47 49 4e 0d 09 09 72 65 | 73 75 6c 74 20 3a 3d 20 |GIN...re|sult := |
|00001980| 46 6f 72 6d 61 74 32 53 | 74 72 28 66 6f 72 6d 61 |Format2S|tr(forma|
|00001990| 74 52 65 63 6f 72 64 2c | 20 67 55 73 65 72 4e 75 |tRecord,| gUserNu|
|000019a0| 6d 62 65 72 50 61 72 74 | 73 54 61 62 6c 65 5e 2c |mberPart|sTable^,|
|000019b0| 20 75 73 65 72 46 6f 72 | 6d 61 74 53 74 72 69 6e | userFor|matStrin|
|000019c0| 67 2c 20 70 6f 73 69 74 | 69 6f 6e 73 29 3b 0d 09 |g, posit|ions);..|
|000019d0| 09 49 46 20 46 6f 72 6d | 61 74 52 65 73 75 6c 74 |.IF Form|atResult|
|000019e0| 54 79 70 65 28 72 65 73 | 75 6c 74 29 20 3c 3e 20 |Type(res|ult) <> |
|000019f0| 66 46 6f 72 6d 61 74 4f | 4b 20 54 48 45 4e 0d 09 |fFormatO|K THEN..|
|00001a00| 09 09 46 61 69 6c 4f 53 | 45 72 72 28 70 61 72 61 |..FailOS|Err(para|
|00001a10| 6d 45 72 72 29 3b 0d 09 | 45 4e 44 3b 0d 0d 0d 09 |mErr);..|END;....|
|00001a20| 50 52 4f 43 45 44 55 52 | 45 20 55 73 65 72 53 74 |PROCEDUR|E UserSt|
|00001a30| 72 69 6e 67 54 6f 46 6f | 72 6d 61 74 52 65 63 6f |ringToFo|rmatReco|
|00001a40| 72 64 20 28 75 73 65 72 | 46 6f 72 6d 61 74 53 74 |rd (user|FormatSt|
|00001a50| 72 69 6e 67 3a 20 53 74 | 72 32 35 35 3b 20 75 73 |ring: St|r255; us|
|00001a60| 65 41 6c 74 65 72 6e 61 | 74 65 4e 75 6d 65 72 61 |eAlterna|teNumera|
|00001a70| 6c 73 3a 20 42 6f 6f 6c | 65 61 6e 3b 20 56 41 52 |ls: Bool|ean; VAR|
|00001a80| 20 66 6f 72 6d 61 74 52 | 65 63 6f 72 64 3a 20 4e | formatR|ecord: N|
|00001a90| 75 6d 46 6f 72 6d 61 74 | 53 74 72 69 6e 67 29 3b |umFormat|String);|
|00001aa0| 0d 0d 09 42 45 47 49 4e | 0d 09 09 53 74 72 69 6e |...BEGIN|...Strin|
|00001ab0| 67 54 6f 46 6f 72 6d 61 | 74 52 65 63 6f 72 64 28 |gToForma|tRecord(|
|00001ac0| 75 73 65 72 46 6f 72 6d | 61 74 53 74 72 69 6e 67 |userForm|atString|
|00001ad0| 2c 20 75 73 65 41 6c 74 | 65 72 6e 61 74 65 4e 75 |, useAlt|ernateNu|
|00001ae0| 6d 65 72 61 6c 73 2c 20 | 67 55 73 65 72 4e 75 6d |merals, |gUserNum|
|00001af0| 62 65 72 50 61 72 74 73 | 54 61 62 6c 65 2c 20 66 |berParts|Table, f|
|00001b00| 6f 72 6d 61 74 52 65 63 | 6f 72 64 29 3b 0d 09 45 |ormatRec|ord);..E|
|00001b10| 4e 44 3b 0d 0d 0d 09 50 | 52 4f 43 45 44 55 52 45 |ND;....P|ROCEDURE|
|00001b20| 20 46 6f 72 6d 61 74 4e | 75 6d 62 65 72 20 28 74 | FormatN|umber (t|
|00001b30| 68 65 4e 75 6d 62 65 72 | 3a 20 45 78 74 65 6e 64 |heNumber|: Extend|
|00001b40| 65 64 3b 20 74 68 65 46 | 6f 72 6d 61 74 52 65 63 |ed; theF|ormatRec|
|00001b50| 6f 72 64 3a 20 4e 75 6d | 46 6f 72 6d 61 74 53 74 |ord: Num|FormatSt|
|00001b60| 72 69 6e 67 3b 20 56 41 | 52 20 74 68 65 53 74 72 |ring; VA|R theStr|
|00001b70| 69 6e 67 3a 20 53 74 72 | 32 35 35 29 3b 0d 0d 09 |ing: Str|255);...|
|00001b80| 09 56 41 52 0d 09 09 09 | 72 65 73 75 6c 74 3a 20 |.VAR....|result: |
|00001b90| 46 6f 72 6d 61 74 53 74 | 61 74 75 73 3b 0d 0d 09 |FormatSt|atus;...|
|00001ba0| 42 45 47 49 4e 0d 09 09 | 72 65 73 75 6c 74 20 3a |BEGIN...|result :|
|00001bb0| 3d 20 46 6f 72 6d 61 74 | 58 32 53 74 72 28 74 68 |= Format|X2Str(th|
|00001bc0| 65 4e 75 6d 62 65 72 2c | 20 74 68 65 46 6f 72 6d |eNumber,| theForm|
|00001bd0| 61 74 52 65 63 6f 72 64 | 2c 20 67 55 73 65 72 4e |atRecord|, gUserN|
|00001be0| 75 6d 62 65 72 50 61 72 | 74 73 54 61 62 6c 65 5e |umberPar|tsTable^|
|00001bf0| 2c 20 74 68 65 53 74 72 | 69 6e 67 29 3b 0d 09 09 |, theStr|ing);...|
|00001c00| 49 46 20 46 6f 72 6d 61 | 74 52 65 73 75 6c 74 54 |IF Forma|tResultT|
|00001c10| 79 70 65 28 72 65 73 75 | 6c 74 29 20 3c 3e 20 66 |ype(resu|lt) <> f|
|00001c20| 46 6f 72 6d 61 74 4f 4b | 20 54 48 45 4e 0d 09 09 |FormatOK| THEN...|
|00001c30| 09 46 61 69 6c 4f 53 45 | 72 72 28 70 61 72 61 6d |.FailOSE|rr(param|
|00001c40| 45 72 72 29 3b 0d 09 45 | 4e 44 3b 0d 0d 0d 09 50 |Err);..E|ND;....P|
|00001c50| 52 4f 43 45 44 55 52 45 | 20 55 6e 6c 6f 63 61 6c |ROCEDURE| Unlocal|
|00001c60| 69 7a 65 4e 75 6d 62 65 | 72 53 74 72 69 6e 67 20 |izeNumbe|rString |
|00001c70| 28 56 41 52 20 74 68 65 | 53 74 72 69 6e 67 3a 20 |(VAR the|String: |
|00001c80| 53 74 72 32 35 35 3b 20 | 61 6c 6c 6f 77 44 65 63 |Str255; |allowDec|
|00001c90| 69 6d 61 6c 3a 20 42 6f | 6f 6c 65 61 6e 29 3b 0d |imal: Bo|olean);.|
|00001ca0| 0d 09 09 56 41 52 0d 09 | 09 09 64 65 6c 74 61 3a |...VAR..|..delta:|
|00001cb0| 20 49 6e 74 65 67 65 72 | 3b 0d 09 09 09 69 3a 20 | Integer|;....i: |
|00001cc0| 49 6e 74 65 67 65 72 3b | 0d 09 09 09 74 68 65 43 |Integer;|....theC|
|00001cd0| 68 61 72 3a 20 43 68 61 | 72 3b 0d 0d 09 42 45 47 |har: Cha|r;...BEG|
|00001ce0| 49 4e 0d 09 09 64 65 6c | 74 61 20 3a 3d 20 30 3b |IN...del|ta := 0;|
|00001cf0| 0d 09 09 46 4f 52 20 69 | 20 3a 3d 20 31 20 54 4f |...FOR i| := 1 TO|
|00001d00| 20 4c 65 6e 67 74 68 28 | 74 68 65 53 74 72 69 6e | Length(|theStrin|
|00001d10| 67 29 20 44 4f 20 42 45 | 47 49 4e 0d 09 09 09 09 |g) DO BE|GIN.....|
|00001d20| 74 68 65 43 68 61 72 20 | 3a 3d 20 74 68 65 53 74 |theChar |:= theSt|
|00001d30| 72 69 6e 67 5b 69 5d 3b | 0d 09 09 09 09 49 46 20 |ring[i];|.....IF |
|00001d40| 28 74 68 65 43 68 61 72 | 20 3e 3d 20 27 30 27 29 |(theChar| >= '0')|
|00001d50| 20 26 20 28 74 68 65 43 | 68 61 72 20 3c 3d 20 27 | & (theC|har <= '|
|00001d60| 39 27 29 20 54 48 45 4e | 0d 09 09 09 09 09 74 68 |9') THEN|......th|
|00001d70| 65 53 74 72 69 6e 67 5b | 69 20 2d 20 64 65 6c 74 |eString[|i - delt|
|00001d80| 61 5d 20 3a 3d 20 74 68 | 65 43 68 61 72 0d 09 09 |a] := th|eChar...|
|00001d90| 09 09 45 4c 53 45 20 49 | 46 20 28 74 68 65 43 68 |..ELSE I|F (theCh|
|00001da0| 61 72 20 3d 20 27 2d 27 | 29 20 26 20 28 69 20 3d |ar = '-'|) & (i =|
|00001db0| 20 31 29 20 54 48 45 4e | 0d 09 09 09 09 09 74 68 | 1) THEN|......th|
|00001dc0| 65 53 74 72 69 6e 67 5b | 69 20 2d 20 64 65 6c 74 |eString[|i - delt|
|00001dd0| 61 5d 20 3a 3d 20 74 68 | 65 43 68 61 72 0d 09 09 |a] := th|eChar...|
|00001de0| 09 09 45 4c 53 45 20 49 | 46 20 74 68 65 43 68 61 |..ELSE I|F theCha|
|00001df0| 72 20 3d 20 67 44 65 66 | 61 75 6c 74 54 68 6f 75 |r = gDef|aultThou|
|00001e00| 73 61 6e 64 73 53 65 70 | 61 72 61 74 6f 72 20 54 |sandsSep|arator T|
|00001e10| 48 45 4e 0d 09 09 09 09 | 09 64 65 6c 74 61 20 3a |HEN.....|.delta :|
|00001e20| 3d 20 64 65 6c 74 61 20 | 2b 20 31 0d 09 09 09 09 |= delta |+ 1.....|
|00001e30| 45 4c 53 45 20 49 46 20 | 74 68 65 43 68 61 72 20 |ELSE IF |theChar |
|00001e40| 3d 20 67 44 65 66 61 75 | 6c 74 44 65 63 69 6d 61 |= gDefau|ltDecima|
|00001e50| 6c 53 65 70 61 72 61 74 | 6f 72 20 54 48 45 4e 20 |lSeparat|or THEN |
|00001e60| 42 45 47 49 4e 0d 09 09 | 09 09 09 09 49 46 20 61 |BEGIN...|....IF a|
|00001e70| 6c 6c 6f 77 44 65 63 69 | 6d 61 6c 20 54 48 45 4e |llowDeci|mal THEN|
|00001e80| 20 42 45 47 49 4e 0d 09 | 09 09 09 09 09 09 09 61 | BEGIN..|.......a|
|00001e90| 6c 6c 6f 77 44 65 63 69 | 6d 61 6c 20 3a 3d 20 46 |llowDeci|mal := F|
|00001ea0| 41 4c 53 45 3b 20 7b 20 | 6f 6e 65 20 69 73 20 65 |ALSE; { |one is e|
|00001eb0| 6e 6f 75 67 68 20 7d 0d | 09 09 09 09 09 09 09 09 |nough }.|........|
|00001ec0| 74 68 65 53 74 72 69 6e | 67 5b 69 20 2d 20 64 65 |theStrin|g[i - de|
|00001ed0| 6c 74 61 5d 20 3a 3d 20 | 27 2e 27 3b 0d 09 09 09 |lta] := |'.';....|
|00001ee0| 09 09 09 09 45 4e 44 0d | 09 09 09 09 09 09 45 4c |....END.|......EL|
|00001ef0| 53 45 0d 09 09 09 09 09 | 09 09 46 61 69 6c 4f 53 |SE......|..FailOS|
|00001f00| 45 72 72 28 70 61 72 61 | 6d 45 72 72 29 0d 09 09 |Err(para|mErr)...|
|00001f10| 09 09 09 45 4e 44 0d 09 | 09 09 09 45 4c 53 45 0d |...END..|...ELSE.|
|00001f20| 09 09 09 09 09 46 61 69 | 6c 4f 53 45 72 72 28 70 |.....Fai|lOSErr(p|
|00001f30| 61 72 61 6d 45 72 72 29 | 3b 0d 09 09 09 45 4e 44 |aramErr)|;....END|
|00001f40| 3b 0d 09 09 74 68 65 53 | 74 72 69 6e 67 5b 30 5d |;...theS|tring[0]|
|00001f50| 20 3a 3d 20 43 68 61 72 | 28 4c 65 6e 67 74 68 28 | := Char|(Length(|
|00001f60| 74 68 65 53 74 72 69 6e | 67 29 20 2d 20 64 65 6c |theStrin|g) - del|
|00001f70| 74 61 29 3b 0d 09 09 49 | 46 20 4c 65 6e 67 74 68 |ta);...I|F Length|
|00001f80| 28 74 68 65 53 74 72 69 | 6e 67 29 20 3d 20 30 20 |(theStri|ng) = 0 |
|00001f90| 54 48 45 4e 0d 09 09 09 | 46 61 69 6c 4f 53 45 72 |THEN....|FailOSEr|
|00001fa0| 72 28 70 61 72 61 6d 45 | 72 72 29 3b 0d 09 45 4e |r(paramE|rr);..EN|
|00001fb0| 44 3b 0d 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |D;....PR|OCEDURE |
|00001fc0| 4c 6f 63 61 6c 53 74 72 | 69 6e 67 54 6f 49 6e 74 |LocalStr|ingToInt|
|00001fd0| 65 67 65 72 20 28 74 68 | 65 53 74 72 69 6e 67 3a |eger (th|eString:|
|00001fe0| 20 53 74 72 32 35 35 3b | 20 56 41 52 20 74 68 65 | Str255;| VAR the|
|00001ff0| 4e 75 6d 62 65 72 3a 20 | 4c 6f 6e 67 49 6e 74 29 |Number: |LongInt)|
|00002000| 3b 0d 0d 09 42 45 47 49 | 4e 0d 09 09 55 6e 6c 6f |;...BEGI|N...Unlo|
|00002010| 63 61 6c 69 7a 65 4e 75 | 6d 62 65 72 53 74 72 69 |calizeNu|mberStri|
|00002020| 6e 67 28 74 68 65 53 74 | 72 69 6e 67 2c 20 46 41 |ng(theSt|ring, FA|
|00002030| 4c 53 45 29 3b 0d 09 09 | 53 74 72 69 6e 67 54 6f |LSE);...|StringTo|
|00002040| 4e 75 6d 28 74 68 65 53 | 74 72 69 6e 67 2c 20 74 |Num(theS|tring, t|
|00002050| 68 65 4e 75 6d 62 65 72 | 29 3b 0d 09 45 4e 44 3b |heNumber|);..END;|
|00002060| 0d 0d 0d 09 50 52 4f 43 | 45 44 55 52 45 20 4c 6f |....PROC|EDURE Lo|
|00002070| 63 61 6c 53 74 72 69 6e | 67 54 6f 45 78 74 65 6e |calStrin|gToExten|
|00002080| 64 65 64 20 28 74 68 65 | 53 74 72 69 6e 67 3a 20 |ded (the|String: |
|00002090| 53 74 72 32 35 35 3b 20 | 56 41 52 20 74 68 65 4e |Str255; |VAR theN|
|000020a0| 75 6d 62 65 72 3a 20 45 | 78 74 65 6e 64 65 64 29 |umber: E|xtended)|
|000020b0| 3b 0d 0d 09 42 45 47 49 | 4e 0d 09 09 55 6e 6c 6f |;...BEGI|N...Unlo|
|000020c0| 63 61 6c 69 7a 65 4e 75 | 6d 62 65 72 53 74 72 69 |calizeNu|mberStri|
|000020d0| 6e 67 28 74 68 65 53 74 | 72 69 6e 67 2c 20 54 52 |ng(theSt|ring, TR|
|000020e0| 55 45 29 3b 0d 09 09 74 | 68 65 4e 75 6d 62 65 72 |UE);...t|heNumber|
|000020f0| 20 3a 3d 20 53 74 72 32 | 4e 75 6d 28 74 68 65 53 | := Str2|Num(theS|
|00002100| 74 72 69 6e 67 29 3b 0d | 09 45 4e 44 3b 0d 0d 0d |tring);.|.END;...|
|00002110| 09 46 55 4e 43 54 49 4f | 4e 20 49 6e 74 65 72 70 |.FUNCTIO|N Interp|
|00002120| 72 65 74 45 78 74 65 6e | 64 65 64 20 28 74 68 65 |retExten|ded (the|
|00002130| 53 74 72 69 6e 67 3a 20 | 53 74 72 32 35 35 3b 20 |String: |Str255; |
|00002140| 74 68 65 46 6f 72 6d 61 | 74 52 65 63 6f 72 64 3a |theForma|tRecord:|
|00002150| 20 4e 75 6d 46 6f 72 6d | 61 74 53 74 72 69 6e 67 | NumForm|atString|
|00002160| 3b 20 56 41 52 20 74 68 | 65 4e 75 6d 62 65 72 3a |; VAR th|eNumber:|
|00002170| 20 45 78 74 65 6e 64 65 | 64 29 3a 20 42 6f 6f 6c | Extende|d): Bool|
|00002180| 65 61 6e 3b 0d 0d 09 09 | 56 41 52 0d 09 09 09 72 |ean;....|VAR....r|
|00002190| 65 73 75 6c 74 3a 20 46 | 6f 72 6d 61 74 53 74 61 |esult: F|ormatSta|
|000021a0| 74 75 73 3b 0d 0d 09 42 | 45 47 49 4e 0d 09 09 72 |tus;...B|EGIN...r|
|000021b0| 65 73 75 6c 74 20 3a 3d | 20 46 6f 72 6d 61 74 53 |esult :=| FormatS|
|000021c0| 74 72 32 58 28 74 68 65 | 53 74 72 69 6e 67 2c 20 |tr2X(the|String, |
|000021d0| 74 68 65 46 6f 72 6d 61 | 74 52 65 63 6f 72 64 2c |theForma|tRecord,|
|000021e0| 20 67 55 73 65 72 4e 75 | 6d 62 65 72 50 61 72 74 | gUserNu|mberPart|
|000021f0| 73 54 61 62 6c 65 5e 2c | 20 74 68 65 4e 75 6d 62 |sTable^,| theNumb|
|00002200| 65 72 29 3b 0d 09 09 49 | 6e 74 65 72 70 72 65 74 |er);...I|nterpret|
|00002210| 45 78 74 65 6e 64 65 64 | 20 3a 3d 20 46 6f 72 6d |Extended| := Form|
|00002220| 61 74 52 65 73 75 6c 74 | 54 79 70 65 28 72 65 73 |atResult|Type(res|
|00002230| 75 6c 74 29 20 3d 20 66 | 46 6f 72 6d 61 74 4f 4b |ult) = f|FormatOK|
|00002240| 3b 0d 09 45 4e 44 3b 0d | 0d 0d 09 46 55 4e 43 54 |;..END;.|...FUNCT|
|00002250| 49 4f 4e 20 49 6e 74 65 | 72 70 72 65 74 49 6e 74 |ION Inte|rpretInt|
|00002260| 65 67 65 72 20 28 74 68 | 65 53 74 72 69 6e 67 3a |eger (th|eString:|
|00002270| 20 53 74 72 32 35 35 3b | 20 74 68 65 46 6f 72 6d | Str255;| theForm|
|00002280| 61 74 52 65 63 6f 72 64 | 3a 20 4e 75 6d 46 6f 72 |atRecord|: NumFor|
|00002290| 6d 61 74 53 74 72 69 6e | 67 3b 20 56 41 52 20 74 |matStrin|g; VAR t|
|000022a0| 68 65 4e 75 6d 62 65 72 | 3a 20 4c 6f 6e 67 49 6e |heNumber|: LongIn|
|000022b0| 74 29 3a 20 42 6f 6f 6c | 65 61 6e 3b 0d 0d 09 09 |t): Bool|ean;....|
|000022c0| 56 41 52 0d 09 09 09 72 | 65 73 75 6c 74 3a 20 46 |VAR....r|esult: F|
|000022d0| 6f 72 6d 61 74 53 74 61 | 74 75 73 3b 0d 09 09 09 |ormatSta|tus;....|
|000022e0| 74 68 65 45 78 74 65 6e | 64 65 64 3a 20 45 78 74 |theExten|ded: Ext|
|000022f0| 65 6e 64 65 64 3b 0d 0d | 09 09 43 4f 4e 53 54 0d |ended;..|..CONST.|
|00002300| 09 09 09 6d 69 6e 4c 6f | 6e 67 49 6e 74 20 3d 20 |...minLo|ngInt = |
|00002310| 2d 32 31 34 37 34 38 33 | 36 34 38 3b 0d 09 09 09 |-2147483|648;....|
|00002320| 6d 61 78 4c 6f 6e 67 49 | 6e 74 20 3d 20 32 31 34 |maxLongI|nt = 214|
|00002330| 37 34 38 33 36 34 37 3b | 0d 0d 09 42 45 47 49 4e |7483647;|...BEGIN|
|00002340| 0d 09 09 72 65 73 75 6c | 74 20 3a 3d 20 46 6f 72 |...resul|t := For|
|00002350| 6d 61 74 53 74 72 32 58 | 28 74 68 65 53 74 72 69 |matStr2X|(theStri|
|00002360| 6e 67 2c 20 74 68 65 46 | 6f 72 6d 61 74 52 65 63 |ng, theF|ormatRec|
|00002370| 6f 72 64 2c 20 67 55 73 | 65 72 4e 75 6d 62 65 72 |ord, gUs|erNumber|
|00002380| 50 61 72 74 73 54 61 62 | 6c 65 5e 2c 20 74 68 65 |PartsTab|le^, the|
|00002390| 45 78 74 65 6e 64 65 64 | 29 3b 0d 09 09 49 46 20 |Extended|);...IF |
|000023a0| 28 46 6f 72 6d 61 74 52 | 65 73 75 6c 74 54 79 70 |(FormatR|esultTyp|
|000023b0| 65 28 72 65 73 75 6c 74 | 29 20 3d 20 66 46 6f 72 |e(result|) = fFor|
|000023c0| 6d 61 74 4f 4b 29 20 26 | 20 28 74 68 65 45 78 74 |matOK) &| (theExt|
|000023d0| 65 6e 64 65 64 20 3e 3d | 20 6d 69 6e 4c 6f 6e 67 |ended >=| minLong|
|000023e0| 49 6e 74 29 20 26 20 28 | 74 68 65 45 78 74 65 6e |Int) & (|theExten|
|000023f0| 64 65 64 20 3c 3d 20 6d | 61 78 4c 6f 6e 67 49 6e |ded <= m|axLongIn|
|00002400| 74 29 20 54 48 45 4e 20 | 42 45 47 49 4e 0d 09 09 |t) THEN |BEGIN...|
|00002410| 09 09 74 68 65 4e 75 6d | 62 65 72 20 3a 3d 20 4e |..theNum|ber := N|
|00002420| 75 6d 32 4c 6f 6e 67 49 | 6e 74 28 74 68 65 45 78 |um2LongI|nt(theEx|
|00002430| 74 65 6e 64 65 64 29 3b | 0d 09 09 09 09 49 6e 74 |tended);|.....Int|
|00002440| 65 72 70 72 65 74 49 6e | 74 65 67 65 72 20 3a 3d |erpretIn|teger :=|
|00002450| 20 54 52 55 45 3b 0d 09 | 09 09 45 4e 44 0d 09 09 | TRUE;..|..END...|
|00002460| 45 4c 53 45 0d 09 09 09 | 49 6e 74 65 72 70 72 65 |ELSE....|Interpre|
|00002470| 74 49 6e 74 65 67 65 72 | 20 3a 3d 20 46 41 4c 53 |tInteger| := FALS|
|00002480| 45 3b 0d 09 45 4e 44 3b | 0d 0d 0d 09 50 52 4f 43 |E;..END;|....PROC|
|00002490| 45 44 55 52 45 20 43 68 | 65 63 6b 43 6f 6e 66 69 |EDURE Ch|eckConfi|
|000024a0| 67 75 72 61 74 69 6f 6e | 3b 0d 0d 09 09 56 41 52 |guration|;....VAR|
|000024b0| 0d 09 09 09 72 65 73 70 | 6f 6e 73 65 3a 20 4c 6f |....resp|onse: Lo|
|000024c0| 6e 67 49 6e 74 3b 0d 0d | 09 42 45 47 49 4e 0d 09 |ngInt;..|.BEGIN..|
|000024d0| 09 46 61 69 6c 4f 53 45 | 72 72 28 47 65 73 74 61 |.FailOSE|rr(Gesta|
|000024e0| 6c 74 28 67 65 73 74 61 | 6c 74 53 79 73 74 65 6d |lt(gesta|ltSystem|
|000024f0| 56 65 72 73 69 6f 6e 2c | 20 72 65 73 70 6f 6e 73 |Version,| respons|
|00002500| 65 29 29 3b 0d 09 09 67 | 53 79 73 74 65 6d 56 65 |e));...g|SystemVe|
|00002510| 72 73 69 6f 6e 20 3a 3d | 20 72 65 73 70 6f 6e 73 |rsion :=| respons|
|00002520| 65 3b 20 7b 20 75 73 65 | 73 20 6c 6f 77 20 77 6f |e; { use|s low wo|
|00002530| 72 64 20 6f 6e 6c 79 20 | 7d 0d 09 09 49 46 20 67 |rd only |}...IF g|
|00002540| 53 79 73 74 65 6d 56 65 | 72 73 69 6f 6e 20 3c 20 |SystemVe|rsion < |
|00002550| 24 30 37 30 30 20 54 48 | 45 4e 20 42 45 47 49 4e |$0700 TH|EN BEGIN|
|00002560| 0d 09 09 09 09 57 72 69 | 74 65 6c 6e 28 27 23 23 |.....Wri|teln('##|
|00002570| 23 20 54 68 69 73 20 73 | 61 6d 70 6c 65 20 72 65 |# This s|ample re|
|00002580| 71 75 69 72 65 73 20 61 | 74 20 6c 65 61 73 74 20 |quires a|t least |
|00002590| 53 79 73 74 65 6d 20 37 | 2e 30 27 29 3b 0d 09 09 |System 7|.0');...|
|000025a0| 09 09 45 78 69 74 50 72 | 6f 67 72 61 6d 3b 0d 09 |..ExitPr|ogram;..|
|000025b0| 09 09 45 4e 44 3b 0d 09 | 45 4e 44 3b 0d 0d 0d 09 |..END;..|END;....|
|000025c0| 50 52 4f 43 45 44 55 52 | 45 20 46 61 69 6c 45 4f |PROCEDUR|E FailEO|
|000025d0| 46 3b 0d 0d 09 42 45 47 | 49 4e 0d 09 09 49 46 20 |F;...BEG|IN...IF |
|000025e0| 45 4f 46 20 54 48 45 4e | 20 42 45 47 49 4e 0d 09 |EOF THEN| BEGIN..|
|000025f0| 09 09 09 57 72 69 74 65 | 6c 6e 28 27 23 23 23 20 |...Write|ln('### |
|00002600| 65 6e 63 6f 75 6e 74 65 | 72 65 64 20 65 6e 64 20 |encounte|red end |
|00002610| 6f 66 20 66 69 6c 65 27 | 29 3b 0d 09 09 09 09 45 |of file'|);.....E|
|00002620| 78 69 74 50 72 6f 67 72 | 61 6d 3b 0d 09 09 09 45 |xitProgr|am;....E|
|00002630| 4e 44 3b 0d 09 45 4e 44 | 3b 0d 0d 0d 09 50 52 4f |ND;..END|;....PRO|
|00002640| 43 45 44 55 52 45 20 44 | 6f 44 65 66 61 75 6c 74 |CEDURE D|oDefault|
|00002650| 46 6f 72 6d 61 74 74 69 | 6e 67 54 65 73 74 3b 0d |Formatti|ngTest;.|
|00002660| 0d 09 09 50 52 4f 43 45 | 44 55 52 45 20 57 72 69 |...PROCE|DURE Wri|
|00002670| 74 65 44 65 66 61 75 6c | 74 49 6e 74 65 67 65 72 |teDefaul|tInteger|
|00002680| 20 28 74 68 65 4e 75 6d | 62 65 72 3a 20 4c 6f 6e | (theNum|ber: Lon|
|00002690| 67 49 6e 74 29 3b 0d 09 | 09 09 56 41 52 0d 09 09 |gInt);..|..VAR...|
|000026a0| 09 09 74 68 65 53 74 72 | 69 6e 67 3a 20 53 74 72 |..theStr|ing: Str|
|000026b0| 32 35 35 3b 0d 09 09 42 | 45 47 49 4e 0d 09 09 09 |255;...B|EGIN....|
|000026c0| 49 6e 74 65 67 65 72 54 | 6f 4c 6f 63 61 6c 53 74 |IntegerT|oLocalSt|
|000026d0| 72 69 6e 67 28 74 68 65 | 4e 75 6d 62 65 72 2c 20 |ring(the|Number, |
|000026e0| 74 68 65 53 74 72 69 6e | 67 29 3b 0d 09 09 09 57 |theStrin|g);....W|
|000026f0| 72 69 74 65 6c 6e 28 74 | 68 65 53 74 72 69 6e 67 |riteln(t|heString|
|00002700| 29 3b 0d 09 09 45 4e 44 | 3b 0d 0d 09 09 50 52 4f |);...END|;....PRO|
|00002710| 43 45 44 55 52 45 20 57 | 72 69 74 65 44 65 66 61 |CEDURE W|riteDefa|
|00002720| 75 6c 74 45 78 74 65 6e | 64 65 64 20 28 74 68 65 |ultExten|ded (the|
|00002730| 4e 75 6d 62 65 72 3a 20 | 45 78 74 65 6e 64 65 64 |Number: |Extended|
|00002740| 29 3b 0d 09 09 09 56 41 | 52 0d 09 09 09 09 74 68 |);....VA|R.....th|
|00002750| 65 53 74 72 69 6e 67 3a | 20 53 74 72 32 35 35 3b |eString:| Str255;|
|00002760| 0d 09 09 42 45 47 49 4e | 0d 09 09 09 45 78 74 65 |...BEGIN|....Exte|
|00002770| 6e 64 65 64 54 6f 4c 6f | 63 61 6c 53 74 72 69 6e |ndedToLo|calStrin|
|00002780| 67 28 74 68 65 4e 75 6d | 62 65 72 2c 20 32 2c 20 |g(theNum|ber, 2, |
|00002790| 74 68 65 53 74 72 69 6e | 67 29 3b 0d 09 09 09 57 |theStrin|g);....W|
|000027a0| 72 69 74 65 6c 6e 28 74 | 68 65 53 74 72 69 6e 67 |riteln(t|heString|
|000027b0| 29 3b 0d 09 09 45 4e 44 | 3b 0d 0d 09 09 50 52 4f |);...END|;....PRO|
|000027c0| 43 45 44 55 52 45 20 52 | 65 61 64 44 65 66 61 75 |CEDURE R|eadDefau|
|000027d0| 6c 74 49 6e 74 65 67 65 | 72 20 28 56 41 52 20 74 |ltIntege|r (VAR t|
|000027e0| 68 65 49 6e 74 65 67 65 | 72 3a 20 4c 6f 6e 67 49 |heIntege|r: LongI|
|000027f0| 6e 74 29 3b 0d 09 09 09 | 56 41 52 0d 09 09 09 09 |nt);....|VAR.....|
|00002800| 74 68 65 53 74 72 69 6e | 67 3a 20 53 74 72 32 35 |theStrin|g: Str25|
|00002810| 35 3b 0d 09 09 42 45 47 | 49 4e 0d 09 09 09 46 61 |5;...BEG|IN....Fa|
|00002820| 69 6c 45 4f 46 3b 0d 09 | 09 09 52 65 61 64 4c 6e |ilEOF;..|..ReadLn|
|00002830| 28 74 68 65 53 74 72 69 | 6e 67 29 3b 0d 09 09 09 |(theStri|ng);....|
|00002840| 4c 6f 63 61 6c 53 74 72 | 69 6e 67 54 6f 49 6e 74 |LocalStr|ingToInt|
|00002850| 65 67 65 72 28 74 68 65 | 53 74 72 69 6e 67 2c 20 |eger(the|String, |
|00002860| 74 68 65 49 6e 74 65 67 | 65 72 29 3b 0d 09 09 45 |theInteg|er);...E|
|00002870| 4e 44 3b 0d 0d 09 09 50 | 52 4f 43 45 44 55 52 45 |ND;....P|ROCEDURE|
|00002880| 20 52 65 61 64 44 65 66 | 61 75 6c 74 45 78 74 65 | ReadDef|aultExte|
|00002890| 6e 64 65 64 20 28 56 41 | 52 20 74 68 65 45 78 74 |nded (VA|R theExt|
|000028a0| 65 6e 64 65 64 3a 20 45 | 78 74 65 6e 64 65 64 29 |ended: E|xtended)|
|000028b0| 3b 0d 09 09 09 56 41 52 | 0d 09 09 09 09 74 68 65 |;....VAR|.....the|
|000028c0| 53 74 72 69 6e 67 3a 20 | 53 74 72 32 35 35 3b 0d |String: |Str255;.|
|000028d0| 09 09 42 45 47 49 4e 0d | 09 09 09 46 61 69 6c 45 |..BEGIN.|...FailE|
|000028e0| 4f 46 3b 0d 09 09 09 52 | 65 61 64 4c 6e 28 74 68 |OF;....R|eadLn(th|
|000028f0| 65 53 74 72 69 6e 67 29 | 3b 0d 09 09 09 4c 6f 63 |eString)|;....Loc|
|00002900| 61 6c 53 74 72 69 6e 67 | 54 6f 45 78 74 65 6e 64 |alString|ToExtend|
|00002910| 65 64 28 74 68 65 53 74 | 72 69 6e 67 2c 20 74 68 |ed(theSt|ring, th|
|00002920| 65 45 78 74 65 6e 64 65 | 64 29 3b 0d 09 09 45 4e |eExtende|d);...EN|
|00002930| 44 3b 0d 0d 09 09 56 41 | 52 0d 09 09 09 74 68 65 |D;....VA|R....the|
|00002940| 4c 6f 6e 67 49 6e 74 3a | 20 4c 6f 6e 67 49 6e 74 |LongInt:| LongInt|
|00002950| 3b 0d 09 09 09 74 68 65 | 45 78 74 65 6e 64 65 64 |;....the|Extended|
|00002960| 3a 20 45 78 74 65 6e 64 | 65 64 3b 0d 0d 09 42 45 |: Extend|ed;...BE|
|00002970| 47 49 4e 0d 09 09 57 72 | 69 74 65 4c 6e 28 27 54 |GIN...Wr|iteLn('T|
|00002980| 65 73 74 69 6e 67 20 64 | 65 66 61 75 6c 74 20 66 |esting d|efault f|
|00002990| 6f 72 6d 61 74 74 69 6e | 67 20 72 6f 75 74 69 6e |ormattin|g routin|
|000029a0| 65 73 3a 27 29 3b 0d 09 | 09 57 72 69 74 65 4c 6e |es:');..|.WriteLn|
|000029b0| 28 27 57 72 69 74 69 6e | 67 20 74 65 73 74 20 6e |('Writin|g test n|
|000029c0| 75 6d 62 65 72 73 3a 27 | 29 3b 0d 09 09 57 72 69 |umbers:'|);...Wri|
|000029d0| 74 65 44 65 66 61 75 6c | 74 49 6e 74 65 67 65 72 |teDefaul|tInteger|
|000029e0| 28 31 32 33 29 3b 0d 09 | 09 57 72 69 74 65 44 65 |(123);..|.WriteDe|
|000029f0| 66 61 75 6c 74 49 6e 74 | 65 67 65 72 28 2d 31 32 |faultInt|eger(-12|
|00002a00| 33 29 3b 0d 09 09 57 72 | 69 74 65 44 65 66 61 75 |3);...Wr|iteDefau|
|00002a10| 6c 74 49 6e 74 65 67 65 | 72 28 31 32 33 34 29 3b |ltIntege|r(1234);|
|00002a20| 0d 09 09 57 72 69 74 65 | 44 65 66 61 75 6c 74 49 |...Write|DefaultI|
|00002a30| 6e 74 65 67 65 72 28 2d | 31 32 33 34 29 3b 0d 09 |nteger(-|1234);..|
|00002a40| 09 57 72 69 74 65 44 65 | 66 61 75 6c 74 49 6e 74 |.WriteDe|faultInt|
|00002a50| 65 67 65 72 28 2d 31 32 | 33 34 35 36 37 38 39 29 |eger(-12|3456789)|
|00002a60| 3b 0d 09 09 57 72 69 74 | 65 44 65 66 61 75 6c 74 |;...Writ|eDefault|
|00002a70| 49 6e 74 65 67 65 72 28 | 30 29 3b 0d 09 09 57 72 |Integer(|0);...Wr|
|00002a80| 69 74 65 44 65 66 61 75 | 6c 74 45 78 74 65 6e 64 |iteDefau|ltExtend|
|00002a90| 65 64 28 31 32 33 2e 34 | 35 36 29 3b 0d 09 09 57 |ed(123.4|56);...W|
|00002aa0| 72 69 74 65 44 65 66 61 | 75 6c 74 45 78 74 65 6e |riteDefa|ultExten|
|00002ab0| 64 65 64 28 37 31 32 33 | 2e 34 35 36 29 3b 0d 09 |ded(7123|.456);..|
|00002ac0| 09 57 72 69 74 65 44 65 | 66 61 75 6c 74 45 78 74 |.WriteDe|faultExt|
|00002ad0| 65 6e 64 65 64 28 2d 31 | 32 33 2e 34 35 36 29 3b |ended(-1|23.456);|
|00002ae0| 0d 09 09 57 72 69 74 65 | 44 65 66 61 75 6c 74 45 |...Write|DefaultE|
|00002af0| 78 74 65 6e 64 65 64 28 | 2d 37 31 32 33 2e 34 35 |xtended(|-7123.45|
|00002b00| 36 29 3b 0d 09 09 57 72 | 69 74 65 44 65 66 61 75 |6);...Wr|iteDefau|
|00002b10| 6c 74 45 78 74 65 6e 64 | 65 64 28 2d 31 32 33 34 |ltExtend|ed(-1234|
|00002b20| 35 36 37 38 39 2e 34 35 | 36 29 3b 0d 09 09 57 72 |56789.45|6);...Wr|
|00002b30| 69 74 65 44 65 66 61 75 | 6c 74 45 78 74 65 6e 64 |iteDefau|ltExtend|
|00002b40| 65 64 28 30 29 3b 0d 0d | 09 09 57 72 69 74 65 6c |ed(0);..|..Writel|
|00002b50| 6e 28 27 50 6c 65 61 73 | 65 20 65 6e 74 65 72 20 |n('Pleas|e enter |
|00002b60| 69 6e 74 65 67 65 72 20 | 6e 75 6d 62 65 72 73 20 |integer |numbers |
|00002b70| 2d 20 30 20 77 69 6c 6c | 20 73 6b 69 70 20 74 6f |- 0 will| skip to|
|00002b80| 20 6e 65 78 74 20 74 65 | 73 74 27 29 3b 0d 09 09 | next te|st');...|
|00002b90| 52 45 50 45 41 54 0d 09 | 09 09 52 65 61 64 44 65 |REPEAT..|..ReadDe|
|00002ba0| 66 61 75 6c 74 49 6e 74 | 65 67 65 72 28 74 68 65 |faultInt|eger(the|
|00002bb0| 4c 6f 6e 67 49 6e 74 29 | 3b 0d 09 09 09 57 72 69 |LongInt)|;....Wri|
|00002bc0| 74 65 44 65 66 61 75 6c | 74 49 6e 74 65 67 65 72 |teDefaul|tInteger|
|00002bd0| 28 74 68 65 4c 6f 6e 67 | 49 6e 74 29 3b 0d 09 09 |(theLong|Int);...|
|00002be0| 55 4e 54 49 4c 20 74 68 | 65 4c 6f 6e 67 49 6e 74 |UNTIL th|eLongInt|
|00002bf0| 20 3d 20 30 3b 0d 0d 09 | 09 57 72 69 74 65 6c 6e | = 0;...|.Writeln|
|00002c00| 28 27 50 6c 65 61 73 65 | 20 65 6e 74 65 72 20 66 |('Please| enter f|
|00002c10| 6c 6f 61 74 69 6e 67 20 | 70 6f 69 6e 74 20 6e 75 |loating |point nu|
|00002c20| 6d 62 65 72 73 20 2d 20 | 30 20 77 69 6c 6c 20 73 |mbers - |0 will s|
|00002c30| 6b 69 70 20 74 6f 20 6e | 65 78 74 20 74 65 73 74 |kip to n|ext test|
|00002c40| 27 29 3b 0d 09 09 52 45 | 50 45 41 54 0d 09 09 09 |');...RE|PEAT....|
|00002c50| 52 65 61 64 44 65 66 61 | 75 6c 74 45 78 74 65 6e |ReadDefa|ultExten|
|00002c60| 64 65 64 28 74 68 65 45 | 78 74 65 6e 64 65 64 29 |ded(theE|xtended)|
|00002c70| 3b 0d 09 09 09 57 72 69 | 74 65 44 65 66 61 75 6c |;....Wri|teDefaul|
|00002c80| 74 45 78 74 65 6e 64 65 | 64 28 74 68 65 45 78 74 |tExtende|d(theExt|
|00002c90| 65 6e 64 65 64 29 3b 0d | 09 09 55 4e 54 49 4c 20 |ended);.|..UNTIL |
|00002ca0| 74 68 65 45 78 74 65 6e | 64 65 64 20 3d 20 30 2e |theExten|ded = 0.|
|00002cb0| 30 3b 0d 0d 09 45 4e 44 | 3b 0d 0d 0d 09 43 4f 4e |0;...END|;....CON|
|00002cc0| 53 54 0d 09 09 6b 55 53 | 46 6c 6f 61 74 46 6f 72 |ST...kUS|FloatFor|
|00002cd0| 6d 61 74 53 74 72 69 6e | 67 20 3d 20 27 23 23 23 |matStrin|g = '###|
|00002ce0| 2c 23 23 23 2e 23 23 3b | 2d 23 23 23 2c 23 23 23 |,###.##;|-###,###|
|00002cf0| 2e 23 23 3b 30 2e 23 23 | 27 3b 0d 09 09 6b 55 53 |.##;0.##|';...kUS|
|00002d00| 49 6e 74 65 67 65 72 46 | 6f 72 6d 61 74 53 74 72 |IntegerF|ormatStr|
|00002d10| 69 6e 67 20 3d 20 27 23 | 23 23 2c 23 23 23 3b 2d |ing = '#|##,###;-|
|00002d20| 23 23 23 2c 23 23 23 3b | 30 27 3b 0d 09 09 6b 55 |###,###;|0';...kU|
|00002d30| 53 53 63 69 65 6e 74 69 | 66 69 63 46 6f 72 6d 61 |SScienti|ficForma|
|00002d40| 74 53 74 72 69 6e 67 20 | 3d 20 27 23 2e 23 23 23 |tString |= '#.###|
|00002d50| 65 2b 23 23 3b 2d 23 2e | 23 23 23 65 2d 23 23 3b |e+##;-#.|###e-##;|
|00002d60| 30 2e 27 3b 0d 0d 0d 09 | 56 41 52 0d 09 09 74 68 |0.';....|VAR...th|
|00002d70| 65 46 6c 6f 61 74 46 6f | 72 6d 61 74 52 65 63 6f |eFloatFo|rmatReco|
|00002d80| 72 64 3a 20 4e 75 6d 46 | 6f 72 6d 61 74 53 74 72 |rd: NumF|ormatStr|
|00002d90| 69 6e 67 3b 0d 09 09 74 | 68 65 49 6e 74 65 67 65 |ing;...t|heIntege|
|00002da0| 72 46 6f 72 6d 61 74 52 | 65 63 6f 72 64 3a 20 4e |rFormatR|ecord: N|
|00002db0| 75 6d 46 6f 72 6d 61 74 | 53 74 72 69 6e 67 3b 0d |umFormat|String;.|
|00002dc0| 09 09 74 68 65 53 63 69 | 65 6e 74 69 66 69 63 46 |..theSci|entificF|
|00002dd0| 6f 72 6d 61 74 52 65 63 | 6f 72 64 3a 20 4e 75 6d |ormatRec|ord: Num|
|00002de0| 46 6f 72 6d 61 74 53 74 | 72 69 6e 67 3b 0d 09 09 |FormatSt|ring;...|
|00002df0| 67 55 73 65 41 6c 74 65 | 72 6e 61 74 65 4e 75 6d |gUseAlte|rnateNum|
|00002e00| 65 72 61 6c 73 3a 20 42 | 6f 6f 6c 65 61 6e 3b 0d |erals: B|oolean;.|
|00002e10| 0d 0d 09 50 52 4f 43 45 | 44 55 52 45 20 44 6f 46 |...PROCE|DURE DoF|
|00002e20| 6f 72 6d 61 74 53 74 72 | 69 6e 67 54 65 73 74 3b |ormatStr|ingTest;|
|00002e30| 0d 0d 09 09 56 41 52 0d | 09 09 09 74 68 65 53 74 |....VAR.|...theSt|
|00002e40| 72 69 6e 67 3a 20 53 74 | 72 32 35 35 3b 0d 0d 09 |ring: St|r255;...|
|00002e50| 42 45 47 49 4e 0d 09 09 | 57 72 69 74 65 4c 6e 28 |BEGIN...|WriteLn(|
|00002e60| 27 54 65 73 74 69 6e 67 | 20 66 6f 72 6d 61 74 20 |'Testing| format |
|00002e70| 73 70 65 63 69 66 69 63 | 61 74 69 6f 6e 20 63 6f |specific|ation co|
|00002e80| 6e 76 65 72 73 69 6f 6e | 73 3a 27 29 3b 0d 09 09 |nversion|s:');...|
|00002e90| 50 72 65 64 65 66 69 6e | 65 64 53 74 72 69 6e 67 |Predefin|edString|
|00002ea0| 54 6f 46 6f 72 6d 61 74 | 52 65 63 6f 72 64 28 6b |ToFormat|Record(k|
|00002eb0| 55 53 46 6c 6f 61 74 46 | 6f 72 6d 61 74 53 74 72 |USFloatF|ormatStr|
|00002ec0| 69 6e 67 2c 20 67 55 73 | 65 41 6c 74 65 72 6e 61 |ing, gUs|eAlterna|
|00002ed0| 74 65 4e 75 6d 65 72 61 | 6c 73 2c 20 74 68 65 46 |teNumera|ls, theF|
|00002ee0| 6c 6f 61 74 46 6f 72 6d | 61 74 52 65 63 6f 72 64 |loatForm|atRecord|
|00002ef0| 29 3b 0d 09 09 50 72 65 | 64 65 66 69 6e 65 64 53 |);...Pre|definedS|
|00002f00| 74 72 69 6e 67 54 6f 46 | 6f 72 6d 61 74 52 65 63 |tringToF|ormatRec|
|00002f10| 6f 72 64 28 6b 55 53 49 | 6e 74 65 67 65 72 46 6f |ord(kUSI|ntegerFo|
|00002f20| 72 6d 61 74 53 74 72 69 | 6e 67 2c 20 67 55 73 65 |rmatStri|ng, gUse|
|00002f30| 41 6c 74 65 72 6e 61 74 | 65 4e 75 6d 65 72 61 6c |Alternat|eNumeral|
|00002f40| 73 2c 20 74 68 65 49 6e | 74 65 67 65 72 46 6f 72 |s, theIn|tegerFor|
|00002f50| 6d 61 74 52 65 63 6f 72 | 64 29 3b 0d 09 09 50 72 |matRecor|d);...Pr|
|00002f60| 65 64 65 66 69 6e 65 64 | 53 74 72 69 6e 67 54 6f |edefined|StringTo|
|00002f70| 46 6f 72 6d 61 74 52 65 | 63 6f 72 64 28 6b 55 53 |FormatRe|cord(kUS|
|00002f80| 53 63 69 65 6e 74 69 66 | 69 63 46 6f 72 6d 61 74 |Scientif|icFormat|
|00002f90| 53 74 72 69 6e 67 2c 20 | 67 55 73 65 41 6c 74 65 |String, |gUseAlte|
|00002fa0| 72 6e 61 74 65 4e 75 6d | 65 72 61 6c 73 2c 20 74 |rnateNum|erals, t|
|00002fb0| 68 65 53 63 69 65 6e 74 | 69 66 69 63 46 6f 72 6d |heScient|ificForm|
|00002fc0| 61 74 52 65 63 6f 72 64 | 29 3b 0d 09 09 46 6f 72 |atRecord|);...For|
|00002fd0| 6d 61 74 52 65 63 6f 72 | 64 54 6f 55 73 65 72 53 |matRecor|dToUserS|
|00002fe0| 74 72 69 6e 67 28 74 68 | 65 46 6c 6f 61 74 46 6f |tring(th|eFloatFo|
|00002ff0| 72 6d 61 74 52 65 63 6f | 72 64 2c 20 74 68 65 53 |rmatReco|rd, theS|
|00003000| 74 72 69 6e 67 29 3b 0d | 09 09 57 72 69 74 65 6c |tring);.|..Writel|
|00003010| 6e 28 27 55 53 20 66 6c | 6f 61 74 3a 20 27 2c 20 |n('US fl|oat: ', |
|00003020| 6b 55 53 46 6c 6f 61 74 | 46 6f 72 6d 61 74 53 74 |kUSFloat|FormatSt|
|00003030| 72 69 6e 67 29 3b 0d 09 | 09 57 72 69 74 65 6c 6e |ring);..|.Writeln|
|00003040| 28 27 75 73 65 72 20 66 | 6c 6f 61 74 3a 20 27 2c |('user f|loat: ',|
|00003050| 20 74 68 65 53 74 72 69 | 6e 67 29 3b 0d 09 09 46 | theStri|ng);...F|
|00003060| 6f 72 6d 61 74 52 65 63 | 6f 72 64 54 6f 55 73 65 |ormatRec|ordToUse|
|00003070| 72 53 74 72 69 6e 67 28 | 74 68 65 49 6e 74 65 67 |rString(|theInteg|
|00003080| 65 72 46 6f 72 6d 61 74 | 52 65 63 6f 72 64 2c 20 |erFormat|Record, |
|00003090| 74 68 65 53 74 72 69 6e | 67 29 3b 0d 09 09 57 72 |theStrin|g);...Wr|
|000030a0| 69 74 65 6c 6e 28 27 55 | 53 20 69 6e 74 65 67 65 |iteln('U|S intege|
|000030b0| 72 3a 20 27 2c 20 6b 55 | 53 49 6e 74 65 67 65 72 |r: ', kU|SInteger|
|000030c0| 46 6f 72 6d 61 74 53 74 | 72 69 6e 67 29 3b 0d 09 |FormatSt|ring);..|
|000030d0| 09 57 72 69 74 65 6c 6e | 28 27 75 73 65 72 20 69 |.Writeln|('user i|
|000030e0| 6e 74 65 67 65 72 3a 20 | 27 2c 20 74 68 65 53 74 |nteger: |', theSt|
|000030f0| 72 69 6e 67 29 3b 0d 09 | 09 46 6f 72 6d 61 74 52 |ring);..|.FormatR|
|00003100| 65 63 6f 72 64 54 6f 55 | 73 65 72 53 74 72 69 6e |ecordToU|serStrin|
|00003110| 67 28 74 68 65 53 63 69 | 65 6e 74 69 66 69 63 46 |g(theSci|entificF|
|00003120| 6f 72 6d 61 74 52 65 63 | 6f 72 64 2c 20 74 68 65 |ormatRec|ord, the|
|00003130| 53 74 72 69 6e 67 29 3b | 0d 09 09 57 72 69 74 65 |String);|...Write|
|00003140| 6c 6e 28 27 55 53 20 73 | 63 69 65 6e 74 69 66 69 |ln('US s|cientifi|
|00003150| 63 3a 20 27 2c 20 6b 55 | 53 53 63 69 65 6e 74 69 |c: ', kU|SScienti|
|00003160| 66 69 63 46 6f 72 6d 61 | 74 53 74 72 69 6e 67 29 |ficForma|tString)|
|00003170| 3b 0d 09 09 57 72 69 74 | 65 6c 6e 28 27 75 73 65 |;...Writ|eln('use|
|00003180| 72 20 73 63 69 65 6e 74 | 69 66 69 63 3a 20 27 2c |r scient|ific: ',|
|00003190| 20 74 68 65 53 74 72 69 | 6e 67 29 3b 0d 09 45 4e | theStri|ng);..EN|
|000031a0| 44 3b 0d 0d 0d 09 50 52 | 4f 43 45 44 55 52 45 20 |D;....PR|OCEDURE |
|000031b0| 44 6f 43 75 73 74 6f 6d | 69 7a 65 64 46 6f 72 6d |DoCustom|izedForm|
|000031c0| 61 74 74 69 6e 67 54 65 | 73 74 3b 0d 0d 09 09 43 |attingTe|st;....C|
|000031d0| 4f 4e 53 54 0d 09 09 09 | 6b 45 78 74 65 6e 64 65 |ONST....|kExtende|
|000031e0| 64 49 6e 70 75 74 46 6f | 72 6d 61 74 53 74 72 69 |dInputFo|rmatStri|
|000031f0| 6e 67 20 3d 20 27 23 23 | 23 2c 23 23 23 2e 23 23 |ng = '##|#,###.##|
|00003200| 3b 28 23 23 23 2c 23 23 | 23 2e 23 23 29 3b 30 2e |;(###,##|#.##);0.|
|00003210| 23 23 27 3b 0d 09 09 09 | 6b 49 6e 74 65 67 65 72 |##';....|kInteger|
|00003220| 49 6e 70 75 74 46 6f 72 | 6d 61 74 53 74 72 69 6e |InputFor|matStrin|
|00003230| 67 20 3d 20 27 23 2c 23 | 23 23 2c 23 23 23 2c 23 |g = '#,#|##,###,#|
|00003240| 23 23 3b 28 23 2c 23 23 | 23 2c 23 23 23 2c 23 23 |##;(#,##|#,###,##|
|00003250| 23 29 3b 30 27 3b 0d 0d | 09 09 50 52 4f 43 45 44 |#);0';..|..PROCED|
|00003260| 55 52 45 20 57 72 69 74 | 65 45 78 74 65 6e 64 65 |URE Writ|eExtende|
|00003270| 64 20 28 74 68 65 4e 75 | 6d 62 65 72 3a 20 45 78 |d (theNu|mber: Ex|
|00003280| 74 65 6e 64 65 64 29 3b | 0d 09 09 09 56 41 52 0d |tended);|....VAR.|
|00003290| 09 09 09 09 74 68 65 53 | 74 72 69 6e 67 3a 20 53 |....theS|tring: S|
|000032a0| 74 72 32 35 35 3b 0d 09 | 09 42 45 47 49 4e 0d 09 |tr255;..|.BEGIN..|
|000032b0| 09 09 46 6f 72 6d 61 74 | 4e 75 6d 62 65 72 28 74 |..Format|Number(t|
|000032c0| 68 65 4e 75 6d 62 65 72 | 2c 20 74 68 65 53 63 69 |heNumber|, theSci|
|000032d0| 65 6e 74 69 66 69 63 46 | 6f 72 6d 61 74 52 65 63 |entificF|ormatRec|
|000032e0| 6f 72 64 2c 20 74 68 65 | 53 74 72 69 6e 67 29 3b |ord, the|String);|
|000032f0| 0d 09 09 09 57 72 69 74 | 65 6c 6e 28 74 68 65 53 |....Writ|eln(theS|
|00003300| 74 72 69 6e 67 29 3b 0d | 09 09 45 4e 44 3b 0d 0d |tring);.|..END;..|
|00003310| 09 09 46 55 4e 43 54 49 | 4f 4e 20 52 65 61 64 45 |..FUNCTI|ON ReadE|
|00003320| 78 74 65 6e 64 65 64 20 | 28 56 41 52 20 74 68 65 |xtended |(VAR the|
|00003330| 4e 75 6d 62 65 72 3a 20 | 45 78 74 65 6e 64 65 64 |Number: |Extended|
|00003340| 29 3a 20 42 6f 6f 6c 65 | 61 6e 3b 0d 09 09 09 56 |): Boole|an;....V|
|00003350| 41 52 0d 09 09 09 09 74 | 68 65 53 74 72 69 6e 67 |AR.....t|heString|
|00003360| 3a 20 53 74 72 32 35 35 | 3b 0d 09 09 09 09 74 68 |: Str255|;.....th|
|00003370| 65 46 6f 72 6d 61 74 52 | 65 63 6f 72 64 3a 20 4e |eFormatR|ecord: N|
|00003380| 75 6d 46 6f 72 6d 61 74 | 53 74 72 69 6e 67 3b 0d |umFormat|String;.|
|00003390| 09 09 42 45 47 49 4e 0d | 09 09 09 46 61 69 6c 45 |..BEGIN.|...FailE|
|000033a0| 4f 46 3b 0d 09 09 09 52 | 65 61 64 4c 6e 28 74 68 |OF;....R|eadLn(th|
|000033b0| 65 53 74 72 69 6e 67 29 | 3b 0d 09 09 09 50 72 65 |eString)|;....Pre|
|000033c0| 64 65 66 69 6e 65 64 53 | 74 72 69 6e 67 54 6f 46 |definedS|tringToF|
|000033d0| 6f 72 6d 61 74 52 65 63 | 6f 72 64 28 6b 45 78 74 |ormatRec|ord(kExt|
|000033e0| 65 6e 64 65 64 49 6e 70 | 75 74 46 6f 72 6d 61 74 |endedInp|utFormat|
|000033f0| 53 74 72 69 6e 67 2c 20 | 67 55 73 65 41 6c 74 65 |String, |gUseAlte|
|00003400| 72 6e 61 74 65 4e 75 6d | 65 72 61 6c 73 2c 20 74 |rnateNum|erals, t|
|00003410| 68 65 46 6f 72 6d 61 74 | 52 65 63 6f 72 64 29 3b |heFormat|Record);|
|00003420| 0d 09 09 09 52 65 61 64 | 45 78 74 65 6e 64 65 64 |....Read|Extended|
|00003430| 20 3a 3d 20 49 6e 74 65 | 72 70 72 65 74 45 78 74 | := Inte|rpretExt|
|00003440| 65 6e 64 65 64 28 74 68 | 65 53 74 72 69 6e 67 2c |ended(th|eString,|
|00003450| 20 74 68 65 46 6f 72 6d | 61 74 52 65 63 6f 72 64 | theForm|atRecord|
|00003460| 2c 20 74 68 65 4e 75 6d | 62 65 72 29 3b 0d 09 09 |, theNum|ber);...|
|00003470| 45 4e 44 3b 0d 0d 09 09 | 50 52 4f 43 45 44 55 52 |END;....|PROCEDUR|
|00003480| 45 20 57 72 69 74 65 49 | 6e 74 65 67 65 72 20 28 |E WriteI|nteger (|
|00003490| 74 68 65 4e 75 6d 62 65 | 72 3a 20 45 78 74 65 6e |theNumbe|r: Exten|
|000034a0| 64 65 64 29 3b 0d 09 09 | 09 56 41 52 0d 09 09 09 |ded);...|.VAR....|
|000034b0| 09 74 68 65 53 74 72 69 | 6e 67 3a 20 53 74 72 32 |.theStri|ng: Str2|
|000034c0| 35 35 3b 0d 09 09 09 09 | 74 68 65 46 6f 72 6d 61 |55;.....|theForma|
|000034d0| 74 52 65 63 6f 72 64 3a | 20 4e 75 6d 46 6f 72 6d |tRecord:| NumForm|
|000034e0| 61 74 53 74 72 69 6e 67 | 3b 0d 09 09 42 45 47 49 |atString|;...BEGI|
|000034f0| 4e 0d 09 09 09 46 6f 72 | 6d 61 74 4e 75 6d 62 65 |N....For|matNumbe|
|00003500| 72 28 74 68 65 4e 75 6d | 62 65 72 2c 20 74 68 65 |r(theNum|ber, the|
|00003510| 49 6e 74 65 67 65 72 46 | 6f 72 6d 61 74 52 65 63 |IntegerF|ormatRec|
|00003520| 6f 72 64 2c 20 74 68 65 | 53 74 72 69 6e 67 29 3b |ord, the|String);|
|00003530| 0d 09 09 09 57 72 69 74 | 65 6c 6e 28 74 68 65 53 |....Writ|eln(theS|
|00003540| 74 72 69 6e 67 29 3b 0d | 09 09 45 4e 44 3b 0d 0d |tring);.|..END;..|
|00003550| 09 09 46 55 4e 43 54 49 | 4f 4e 20 52 65 61 64 49 |..FUNCTI|ON ReadI|
|00003560| 6e 74 65 67 65 72 20 28 | 56 41 52 20 74 68 65 4e |nteger (|VAR theN|
|00003570| 75 6d 62 65 72 3a 20 4c | 6f 6e 67 49 6e 74 29 3a |umber: L|ongInt):|
|00003580| 20 42 6f 6f 6c 65 61 6e | 3b 0d 09 09 09 56 41 52 | Boolean|;....VAR|
|00003590| 0d 09 09 09 09 74 68 65 | 53 74 72 69 6e 67 3a 20 |.....the|String: |
|000035a0| 53 74 72 32 35 35 3b 0d | 09 09 09 09 74 68 65 46 |Str255;.|....theF|
|000035b0| 6f 72 6d 61 74 52 65 63 | 6f 72 64 3a 20 4e 75 6d |ormatRec|ord: Num|
|000035c0| 46 6f 72 6d 61 74 53 74 | 72 69 6e 67 3b 0d 09 09 |FormatSt|ring;...|
|000035d0| 42 45 47 49 4e 0d 09 09 | 09 46 61 69 6c 45 4f 46 |BEGIN...|.FailEOF|
|000035e0| 3b 0d 09 09 09 52 65 61 | 64 4c 6e 28 74 68 65 53 |;....Rea|dLn(theS|
|000035f0| 74 72 69 6e 67 29 3b 0d | 09 09 09 50 72 65 64 65 |tring);.|...Prede|
|00003600| 66 69 6e 65 64 53 74 72 | 69 6e 67 54 6f 46 6f 72 |finedStr|ingToFor|
|00003610| 6d 61 74 52 65 63 6f 72 | 64 28 6b 49 6e 74 65 67 |matRecor|d(kInteg|
|00003620| 65 72 49 6e 70 75 74 46 | 6f 72 6d 61 74 53 74 72 |erInputF|ormatStr|
|00003630| 69 6e 67 2c 20 67 55 73 | 65 41 6c 74 65 72 6e 61 |ing, gUs|eAlterna|
|00003640| 74 65 4e 75 6d 65 72 61 | 6c 73 2c 20 74 68 65 46 |teNumera|ls, theF|
|00003650| 6f 72 6d 61 74 52 65 63 | 6f 72 64 29 3b 0d 09 09 |ormatRec|ord);...|
|00003660| 09 52 65 61 64 49 6e 74 | 65 67 65 72 20 3a 3d 20 |.ReadInt|eger := |
|00003670| 49 6e 74 65 72 70 72 65 | 74 49 6e 74 65 67 65 72 |Interpre|tInteger|
|00003680| 28 74 68 65 53 74 72 69 | 6e 67 2c 20 74 68 65 46 |(theStri|ng, theF|
|00003690| 6f 72 6d 61 74 52 65 63 | 6f 72 64 2c 20 74 68 65 |ormatRec|ord, the|
|000036a0| 4e 75 6d 62 65 72 29 3b | 0d 09 09 45 4e 44 3b 0d |Number);|...END;.|
|000036b0| 0d 09 09 56 41 52 0d 09 | 09 09 74 68 65 45 78 74 |...VAR..|..theExt|
|000036c0| 65 6e 64 65 64 3a 20 45 | 78 74 65 6e 64 65 64 3b |ended: E|xtended;|
|000036d0| 0d 09 09 09 74 68 65 4c | 6f 6e 67 49 6e 74 3a 20 |....theL|ongInt: |
|000036e0| 4c 6f 6e 67 49 6e 74 3b | 0d 0d 09 42 45 47 49 4e |LongInt;|...BEGIN|
|000036f0| 0d 09 09 57 72 69 74 65 | 4c 6e 28 27 54 65 73 74 |...Write|Ln('Test|
|00003700| 69 6e 67 20 75 73 65 72 | 2d 73 70 65 63 69 66 69 |ing user|-specifi|
|00003710| 65 64 20 66 6f 72 6d 61 | 74 74 69 6e 67 20 72 6f |ed forma|tting ro|
|00003720| 75 74 69 6e 65 73 3a 27 | 29 3b 0d 09 09 57 72 69 |utines:'|);...Wri|
|00003730| 74 65 4c 6e 28 27 57 72 | 69 74 69 6e 67 20 74 65 |teLn('Wr|iting te|
|00003740| 73 74 20 6e 75 6d 62 65 | 72 73 3a 27 29 3b 0d 09 |st numbe|rs:');..|
|00003750| 09 57 72 69 74 65 45 78 | 74 65 6e 64 65 64 28 33 |.WriteEx|tended(3|
|00003760| 2e 31 34 31 35 39 32 36 | 29 3b 0d 09 09 57 72 69 |.1415926|);...Wri|
|00003770| 74 65 45 78 74 65 6e 64 | 65 64 28 2d 33 2e 31 34 |teExtend|ed(-3.14|
|00003780| 31 35 39 32 36 29 3b 0d | 09 09 57 72 69 74 65 45 |15926);.|..WriteE|
|00003790| 78 74 65 6e 64 65 64 28 | 30 29 3b 0d 09 09 57 72 |xtended(|0);...Wr|
|000037a0| 69 74 65 49 6e 74 65 67 | 65 72 28 31 30 32 34 29 |iteInteg|er(1024)|
|000037b0| 3b 0d 09 09 57 72 69 74 | 65 49 6e 74 65 67 65 72 |;...Writ|eInteger|
|000037c0| 28 2d 31 30 32 34 29 3b | 0d 09 09 57 72 69 74 65 |(-1024);|...Write|
|000037d0| 49 6e 74 65 67 65 72 28 | 30 29 3b 0d 0d 09 09 57 |Integer(|0);....W|
|000037e0| 72 69 74 65 6c 6e 28 27 | 50 6c 65 61 73 65 20 65 |riteln('|Please e|
|000037f0| 6e 74 65 72 20 69 6e 74 | 65 67 65 72 20 6e 75 6d |nter int|eger num|
|00003800| 62 65 72 73 20 2d 20 30 | 20 77 69 6c 6c 20 73 6b |bers - 0| will sk|
|00003810| 69 70 20 74 6f 20 6e 65 | 78 74 20 74 65 73 74 27 |ip to ne|xt test'|
|00003820| 29 3b 0d 09 09 52 45 50 | 45 41 54 0d 09 09 09 49 |);...REP|EAT....I|
|00003830| 46 20 52 65 61 64 49 6e | 74 65 67 65 72 28 74 68 |F ReadIn|teger(th|
|00003840| 65 4c 6f 6e 67 49 6e 74 | 29 20 54 48 45 4e 20 42 |eLongInt|) THEN B|
|00003850| 45 47 49 4e 0d 09 09 09 | 09 09 49 46 20 41 62 73 |EGIN....|..IF Abs|
|00003860| 28 74 68 65 4c 6f 6e 67 | 49 6e 74 29 20 3c 20 39 |(theLong|Int) < 9|
|00003870| 39 39 39 39 39 20 54 48 | 45 4e 0d 09 09 09 09 09 |99999 TH|EN......|
|00003880| 09 57 72 69 74 65 49 6e | 74 65 67 65 72 28 74 68 |.WriteIn|teger(th|
|00003890| 65 4c 6f 6e 67 49 6e 74 | 29 0d 09 09 09 09 09 45 |eLongInt|)......E|
|000038a0| 4c 53 45 0d 09 09 09 09 | 09 09 57 72 69 74 65 4c |LSE.....|..WriteL|
|000038b0| 6e 28 27 23 23 23 20 43 | 61 6e 27 27 74 20 64 69 |n('### C|an''t di|
|000038c0| 73 70 6c 61 79 20 74 68 | 69 73 20 6e 75 6d 62 65 |splay th|is numbe|
|000038d0| 72 21 27 29 0d 09 09 09 | 09 45 4e 44 0d 09 09 09 |r!')....|.END....|
|000038e0| 45 4c 53 45 20 42 45 47 | 49 4e 0d 09 09 09 09 09 |ELSE BEG|IN......|
|000038f0| 57 72 69 74 65 4c 6e 28 | 27 23 23 23 20 43 61 6e |WriteLn(|'### Can|
|00003900| 27 27 74 20 69 6e 74 65 | 72 70 72 65 74 20 74 68 |''t inte|rpret th|
|00003910| 69 73 20 6e 75 6d 62 65 | 72 21 27 29 3b 0d 09 09 |is numbe|r!');...|
|00003920| 09 09 09 74 68 65 4c 6f | 6e 67 49 6e 74 20 3a 3d |...theLo|ngInt :=|
|00003930| 20 31 3b 20 7b 20 74 6f | 20 6b 65 65 70 20 72 75 | 1; { to| keep ru|
|00003940| 6e 6e 69 6e 67 20 7d 0d | 09 09 09 09 45 4e 44 3b |nning }.|....END;|
|00003950| 0d 09 09 55 4e 54 49 4c | 20 74 68 65 4c 6f 6e 67 |...UNTIL| theLong|
|00003960| 49 6e 74 20 3d 20 30 3b | 0d 0d 09 09 57 72 69 74 |Int = 0;|....Writ|
|00003970| 65 6c 6e 28 27 50 6c 65 | 61 73 65 20 65 6e 74 65 |eln('Ple|ase ente|
|00003980| 72 20 66 6c 6f 61 74 69 | 6e 67 20 70 6f 69 6e 74 |r floati|ng point|
|00003990| 20 6e 75 6d 62 65 72 73 | 20 2d 20 30 27 2c 20 67 | numbers| - 0', g|
|000039a0| 44 65 66 61 75 6c 74 44 | 65 63 69 6d 61 6c 53 65 |DefaultD|ecimalSe|
|000039b0| 70 61 72 61 74 6f 72 2c | 20 27 30 20 77 69 6c 6c |parator,| '0 will|
|000039c0| 20 65 6e 64 20 74 65 73 | 74 27 29 3b 0d 09 09 52 | end tes|t');...R|
|000039d0| 45 50 45 41 54 0d 09 09 | 09 49 46 20 52 65 61 64 |EPEAT...|.IF Read|
|000039e0| 45 78 74 65 6e 64 65 64 | 28 74 68 65 45 78 74 65 |Extended|(theExte|
|000039f0| 6e 64 65 64 29 20 54 48 | 45 4e 20 42 45 47 49 4e |nded) TH|EN BEGIN|
|00003a00| 0d 09 09 09 09 09 49 46 | 20 41 62 73 28 74 68 65 |......IF| Abs(the|
|00003a10| 45 78 74 65 6e 64 65 64 | 29 20 3c 20 39 39 39 39 |Extended|) < 9999|
|00003a20| 39 39 2e 39 39 35 20 54 | 48 45 4e 0d 09 09 09 09 |99.995 T|HEN.....|
|00003a30| 09 09 57 72 69 74 65 45 | 78 74 65 6e 64 65 64 28 |..WriteE|xtended(|
|00003a40| 74 68 65 45 78 74 65 6e | 64 65 64 29 0d 09 09 09 |theExten|ded)....|
|00003a50| 09 09 45 4c 53 45 0d 09 | 09 09 09 09 09 57 72 69 |..ELSE..|.....Wri|
|00003a60| 74 65 4c 6e 28 27 23 23 | 23 20 43 61 6e 27 27 74 |teLn('##|# Can''t|
|00003a70| 20 64 69 73 70 6c 61 79 | 20 74 68 69 73 20 6e 75 | display| this nu|
|00003a80| 6d 62 65 72 21 27 29 3b | 0d 09 09 09 09 45 4e 44 |mber!');|.....END|
|00003a90| 0d 09 09 09 45 4c 53 45 | 20 42 45 47 49 4e 0d 09 |....ELSE| BEGIN..|
|00003aa0| 09 09 09 09 57 72 69 74 | 65 4c 6e 28 27 23 23 23 |....Writ|eLn('###|
|00003ab0| 20 43 61 6e 27 27 74 20 | 69 6e 74 65 72 70 72 65 | Can''t |interpre|
|00003ac0| 74 20 74 68 69 73 20 6e | 75 6d 62 65 72 21 27 29 |t this n|umber!')|
|00003ad0| 3b 0d 09 09 09 09 09 74 | 68 65 45 78 74 65 6e 64 |;......t|heExtend|
|00003ae0| 65 64 20 3a 3d 20 31 2e | 30 3b 20 7b 20 74 6f 20 |ed := 1.|0; { to |
|00003af0| 6b 65 65 70 20 72 75 6e | 6e 69 6e 67 20 7d 0d 09 |keep run|ning }..|
|00003b00| 09 09 09 45 4e 44 3b 0d | 09 09 55 4e 54 49 4c 20 |...END;.|..UNTIL |
|00003b10| 74 68 65 45 78 74 65 6e | 64 65 64 20 3d 20 30 2e |theExten|ded = 0.|
|00003b20| 30 3b 0d 0d 09 45 4e 44 | 3b 0d 0d 0d 09 56 41 52 |0;...END|;....VAR|
|00003b30| 0d 09 09 61 6e 73 77 65 | 72 3a 20 53 74 72 32 35 |...answe|r: Str25|
|00003b40| 35 3b 0d 0d 0d 42 45 47 | 49 4e 0d 0d 09 43 68 65 |5;...BEG|IN...Che|
|00003b50| 63 6b 43 6f 6e 66 69 67 | 75 72 61 74 69 6f 6e 3b |ckConfig|uration;|
|00003b60| 0d 09 49 6e 69 74 69 61 | 6c 69 7a 65 44 65 66 61 |..Initia|lizeDefa|
|00003b70| 75 6c 74 4e 75 6d 62 65 | 72 53 65 70 61 72 61 74 |ultNumbe|rSeparat|
|00003b80| 6f 72 73 3b 0d 09 49 6e | 69 74 69 61 6c 69 7a 65 |ors;..In|itialize|
|00003b90| 4e 75 6d 62 65 72 50 61 | 72 74 73 54 61 62 6c 65 |NumberPa|rtsTable|
|00003ba0| 73 3b 0d 09 49 46 20 48 | 61 73 41 6c 74 65 72 6e |s;..IF H|asAltern|
|00003bb0| 61 74 65 4e 75 6d 65 72 | 61 6c 73 28 67 55 73 65 |ateNumer|als(gUse|
|00003bc0| 72 4e 75 6d 62 65 72 50 | 61 72 74 73 54 61 62 6c |rNumberP|artsTabl|
|00003bd0| 65 29 20 54 48 45 4e 20 | 42 45 47 49 4e 0d 09 09 |e) THEN |BEGIN...|
|00003be0| 09 57 72 69 74 65 6c 6e | 28 27 55 73 65 20 61 6c |.Writeln|('Use al|
|00003bf0| 74 65 72 6e 61 74 65 20 | 6e 75 6d 65 72 61 6c 73 |ternate |numerals|
|00003c00| 20 5b 79 2f 6e 5d 3f 27 | 29 3b 0d 09 09 09 46 61 | [y/n]?'|);....Fa|
|00003c10| 69 6c 45 4f 46 3b 0d 09 | 09 09 52 65 61 64 4c 6e |ilEOF;..|..ReadLn|
|00003c20| 28 61 6e 73 77 65 72 29 | 3b 0d 09 09 09 67 55 73 |(answer)|;....gUs|
|00003c30| 65 41 6c 74 65 72 6e 61 | 74 65 4e 75 6d 65 72 61 |eAlterna|teNumera|
|00003c40| 6c 73 20 3a 3d 20 28 4c | 65 6e 67 74 68 28 61 6e |ls := (L|ength(an|
|00003c50| 73 77 65 72 29 20 3e 20 | 30 29 20 26 20 28 61 6e |swer) > |0) & (an|
|00003c60| 73 77 65 72 5b 31 5d 20 | 49 4e 20 5b 27 79 27 2c |swer[1] |IN ['y',|
|00003c70| 20 27 59 27 5d 29 3b 0d | 09 09 45 4e 44 0d 09 45 | 'Y']);.|..END..E|
|00003c80| 4c 53 45 0d 09 09 67 55 | 73 65 41 6c 74 65 72 6e |LSE...gU|seAltern|
|00003c90| 61 74 65 4e 75 6d 65 72 | 61 6c 73 20 3a 3d 20 46 |ateNumer|als := F|
|00003ca0| 41 4c 53 45 3b 0d 09 44 | 6f 44 65 66 61 75 6c 74 |ALSE;..D|oDefault|
|00003cb0| 46 6f 72 6d 61 74 74 69 | 6e 67 54 65 73 74 3b 0d |Formatti|ngTest;.|
|00003cc0| 09 44 6f 46 6f 72 6d 61 | 74 53 74 72 69 6e 67 54 |.DoForma|tStringT|
|00003cd0| 65 73 74 3b 0d 09 44 6f | 43 75 73 74 6f 6d 69 7a |est;..Do|Customiz|
|00003ce0| 65 64 46 6f 72 6d 61 74 | 74 69 6e 67 54 65 73 74 |edFormat|tingTest|
|00003cf0| 3b 0d 09 44 69 73 70 6f | 73 65 4e 75 6d 62 65 72 |;..Dispo|seNumber|
|00003d00| 50 61 72 74 73 54 61 62 | 6c 65 73 3b 0d 0d 45 4e |PartsTab|les;..EN|
|00003d10| 44 2e 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |D.......|........|
|00003d20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d80| 00 00 01 00 00 00 01 b8 | 00 00 00 b8 00 00 00 5e |........|.......^|
|00003d90| 5b 36 45 b7 5b 68 81 73 | c4 01 fb c8 65 4e 63 4b |[6E.[h.s|....eNcK|
|00003da0| 5c 01 01 08 8c 54 14 3e | 2e 00 0e 0c 47 0b f1 d8 |\....T.>|....G...|
|00003db0| 09 4e 75 6d 62 65 72 73 | 2e 70 02 00 00 00 54 45 |.Numbers|.p....TE|
|00003dc0| 58 54 4d 50 53 20 01 00 | ff ff ff ff 00 00 00 00 |XTMPS ..|........|
|00003dd0| 00 00 54 45 58 54 4d 50 | 53 20 01 00 ff ff ff ff |..TEXTMP|S ......|
|00003de0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003df0| 00 00 a8 bc b4 40 00 00 | 3c 92 00 00 02 16 63 5b |.....@..|<.....c[|
|00003e00| 5c 9b 70 54 8c 4d 7f d7 | 82 5b 55 da 5b 01 67 16 |\.pT.M..|.[U.[.g.|
|00003e10| 56 5a 5b 50 01 14 82 67 | de b4 02 4a 01 67 02 7d |VZ[P...g|...J.g.}|
|00003e20| 01 1e 00 59 4f 58 e3 5e | f8 03 61 6c 69 73 67 78 |...YOX.^|..alisgx|
|00003e30| f8 11 01 ff 02 fb ff 67 | 62 12 04 80 00 03 02 0b |.......g|b.......|
|00003e40| 07 67 5a f8 6f 02 03 a7 | 67 52 f8 03 00 ff fc 4c |.gZ.o...|gR.....L|
|00003e50| 67 58 f8 03 04 f8 f6 03 | 67 50 f8 02 06 f3 0d 05 |gX......|gP......|
|00003e60| 12 67 3a 04 80 6f 66 25 | 75 02 00 ec 67 38 f8 66 |.g:..of%|u...g8.f|
|00003e70| 02 f5 0d 67 2a f8 03 02 | f8 06 f7 67 22 24 11 f3 |...g*...|...g"$..|
|00003e80| 00 00 00 2d 01 00 80 00 | 00 00 03 31 2e 30 22 31 |...-....|...1.0"1|
|00003e90| 2e 30 2c 20 28 63 29 20 | 41 70 70 6c 65 20 43 6f |.0, (c) |Apple Co|
|00003ea0| 6d 70 75 74 65 72 2c 20 | 49 6e 63 2e 20 31 39 39 |mputer, |Inc. 199|
|00003eb0| 33 00 00 00 15 01 00 80 | 00 00 00 03 31 2e 30 0a |3.......|....1.0.|
|00003ec0| 44 65 76 65 6c 6f 70 20 | 31 36 00 00 00 48 00 09 |Develop |16...H..|
|00003ed0| 4d 6f 6e 61 63 6f 00 2a | 02 74 00 2a 02 75 01 d6 |Monaco.*|.t.*.u..|
|00003ee0| 00 23 01 d6 00 24 01 d7 | 00 24 01 d7 02 75 00 00 |.#...$..|.$...u..|
|00003ef0| 00 06 00 04 00 3c 00 24 | 01 d5 02 73 00 3c 00 24 |.....<.$|...s.<.$|
|00003f00| 01 d5 02 73 a8 bc b4 40 | 00 00 23 e8 00 00 23 e8 |...s...@|..#...#.|
|00003f10| 00 00 21 25 01 00 00 00 | 00 1e 00 3c 00 24 01 d5 |..!%....|...<.$..|
|00003f20| 02 73 00 3c 00 24 01 d5 | 02 73 00 00 21 25 00 00 |.s.<.$..|.s..!%..|
|00003f30| 00 00 00 00 00 00 00 00 | 00 00 01 00 00 00 01 b8 |........|........|
|00003f40| 00 00 00 b8 00 00 00 5e | 00 fb ec 20 1d 04 00 00 |.......^|... ....|
|00003f50| 00 1c 00 5e 00 01 76 65 | 72 73 00 01 00 12 4d 50 |...^..ve|rs....MP|
|00003f60| 53 52 00 01 00 2a 00 01 | ff ff 00 00 00 00 00 00 |SR...*..|........|
|00003f70| 00 00 00 02 ff ff 00 00 | 00 31 00 00 00 00 03 ed |........|.1......|
|00003f80| ff ff 00 00 00 4a 00 00 | 00 00 03 f0 ff ff 00 00 |.....J..|........|
|00003f90| 00 96 00 fe 48 34 00 00 | 00 00 00 00 00 00 00 00 |....H4..|........|
|00003fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+